【Python编程实践2/3】Python图像处理模块(上)

目录

引言

目标

安装模块

Windows系统

macOS系统

路径

Windows路径

​编辑macOS路径

windows路径报错

windows路径前的r

示例代码

windows快速查看路径

macOS快速查看路径

打开图片

展示图片

下节预告

总结


引言

欢迎各位大佬垂阅本篇Python实践博客,来到这儿,你已经超越%89.60的Python入门学习者啦~

前面的博客,我们学习了Python的数据类型、判断、循环、函数等知识点。你是否会有这样的疑问:这些简单的代码有些什么实际的应用呢?基于这一些基础语法,再结合前人搭建的开源模块,我们能用Python解决很多实际问题。

接下来的两篇博客,我们来通过图片处理操作,来解决一个困扰小栗子的难题。小栗子最近绘制了一些插画,想将它们分享到各大平台,但又担心这些插画被他人盗用,那有什么好的办法能帮助小栗子来解决这个难题呢?

其实,我们可以利用通过第三方提供的pillow模块,给插画添加指定的水印,这个过程需要以下六个步骤:1、安装模块 2、打开图片 3、展示图片 4、加载字体 5、绘制文字 6、保存图片

今天,我们来学习前面三个步骤。

前面,我们学习了Python自带的内置模块。今天,我们来学习第三方模块的知识。由于系统学习一个第三方模块,会花费不少时间。因此,为了尽快在本地感受第三方模块的魅力,这里我们以相对简单的pillow模块进行讲解。

目标

pillow模块是一个第三方图像处理模块,主要用于图像的基本处理。接下来的两篇博客,我们将利用pillow模块给图片添加自己想要的水印。

本篇,我们先来学习如何利用pillow模块,打开并展示出一张图片。

安装模块

pillow模块是第三方模块,在导入使用前,必须先进行安装。下面,我们以pillow为例,来看看如何安装第三方模块。

为了安装第三方模块,我们需要一个叫做pip的工具。而pip工具,在我们前面安装Python环境的时候,已经自动安装了。现在,我们可以直接在电脑上使用pip工具来安装第三方模块。大家可以在自己的电脑上跟着一起完成安装

Windows系统

要使用pip工具安装第三方模块,需要在Windows的命令提示符(终端)里进行。我们可以使用以下两种方式之一打开终端:

  1. 在电脑的「开始菜单」旁的搜索栏里输入 cmd 后,敲击回车;

2. 同时在键盘上按下WIN和R,在运行框里输入 cmd 后,敲击回车。

打开窗口,并且确保电脑已经连入互联网后,就可以开始安装第三方模块了。比如,我们要安装pillow模块。只需要在窗口内输入: pip install pillow,然后敲击回车。

安装过程如图。点击回车后,会出现很多的安装信息。当看到Successfully installed...时,说明模块已经安装成功。

大家还可能会遇到黄色的警告,这是在提示需要升级pip工具。可以选择忽视。

若在自己电脑上安装不上或安装缓慢,可使用以下命令进行加速:pip install pillow==9.1.0 -i https://pypi.mirrors.ustc.edu.cn/simple/

macOS系统

要使用pip工具安装第三方模块,需要在macOS的终端里进行。我们可以使用以下两种方式之一打开终端:

  1. 我们在启动台中找到并打开【其他】,点击【终端】图标;

  2. Command + 空格键跳出搜索框,输入ter按回车即可打开终端。

打开终端窗口,并且确保电脑已经连入互联网后,就可以开始安装第三方模块了。比如,我们要安装pillow模块。只需要在窗口内输入: pip3 install pillow,然后敲击回车。

安装过程如图。点击回车后,会出现很多的安装信息。当看到Successfully installed...时,说明模块已经安装成功。大家还可能会遇到黄色的警告,这是在提示需要升级pip工具,可以选择忽视。

若在自己电脑上安装不上或安装缓慢,可使用以下命令进行加速:pip3 install pillow -i https://pypi.mirrors.ustc.edu.cn/simple/

路径

模块安装后,就可以导入使用了。而在我们使用pillow模块去打开图片前,我们需要知道该图片在电脑中的位置。而这个位置就是 -- 路径。

定义 :路径表示文件或者文件夹的位置。

隐喻 :路径就像现实中的地址一样,帮助我们找到目标文件或文件夹在什么位置。

Windows路径

现在我们常用的计算机系统分为 Windows系统 和 macOS系统。在Windows系统的路径中,我们使用反斜线 ( \ ) 分隔各个文件夹和文件名。同时,在路径的最前面,是盘符的字母和英文冒号,表示文件或文件夹在哪个盘的路径下。

注意:盘符就是电脑里的C盘、D盘的字母C和D。

macOS路径

在macOS系统中,文件夹和文件名使用正斜线 ( / ) 进行分隔。由于macOS系统中没有盘符的概念,所以其路径都是从根目录( / ) 开始。

注意:根目录是指最上一级目录,它如同一棵大树的"根"一般,所有的文件和文件夹都以它为起点。

windows路径报错

如图,当我们输出Windows系统的路径时,会出现报错。而引起这个错误的原因就是转义的问题。在Windows系统中,读取文件路径使用反斜线 ( \ )。但是在Python字符串中,反斜线 ( \ )有转义的含义,比如:\n代表换行。

windows路径前的r

解决反斜线 ( \ )转义的问题,有一个常用的办法。就是在路径前面加字母**r**,表示保持字符的原始值。

比如**r"C:\Users\photo.jpg"**

示例代码

示例代码中,展示了macOS系统和Windows系统中路径的使用方法。

python 复制代码
# 将文件路径/Users/photo.jpg,赋值给macOS_path
macOS_path = "/Users/photo.jpg"

# 将文件路径C:\Users\photo.jpg,赋值给Windows_path
Windows_path = r"C:\Users\photo.jpg"

# 输出变量macOS_path
print(macOS_path)
# 输出变量Windows_path
print(Windows_path)

windows快速查看路径

这里提供Windows快速获取路径的两种方法:

  1. 按下Shift 键不放,然后对应文件上单击右键 ,选择【 复制文件地址 】即可得快速得到路径;

  2. 将对应文件拖入终端,即可快速得到路径。(注意,在键盘上按下WIN和R,在运行框里输入 cmd 后,敲击回车打开终端。)

macOS快速查看路径

这里提供macOS快速获取路径的两种方法:

  1. 找到文件,使用快捷键option+command+c

  2. 将对应文件拖入终端,即可快速得到路径。(注意,Command + 空格键跳出搜索框,输入ter按回车即可打开终端。)

打开图片

安装完模块,学习完路径后,我们就可以使用pillow模块来打开图片了。下面,我们就来学习如何打开一张指定路径的图片。

通过导入Image类,然后使用该类中的open()方法,打开一张图片。

python 复制代码
# 从PIL模块中导入Image类
from PIL import Image
# 使用Image类的open()方法打开图片,赋值给变量img
img = Image.open("/Users/yequ/team.png")

从模块中导入类

使用from ... import语句,从PIL模块中导入了类Image。注意,pillow模块比较特殊,需要使用PIL的简写形式。

类名

类名Image,表明接下来要调用Image类中的方法。

句点

用于连接类名和方法名。

方法

类中的open()方法,作用是打开指定路径的图片。

对象名

变量img是通过类方法打开的一个图片对象。

展示图片

Image类中的open()方法,用于打开图片。而展示图片,就需要用Image中的show()方法。通过导入Image类,然后使用该类中的open()方法,打开一张图片。最后,通过该类中的show()方法展示图片。

python 复制代码
# 从PIL模块中导入Image类
from PIL import Image
# 使用Image类的open()方法打开图片,赋值给变量img
img = Image.open("/Users/yequ/team.png")
# 展示图片
img.show()

展示图片

直接在图片对象img后使用show()方法,展示图片。方法的调用语法为:对象.方法名()

下节预告

今天,我们通过导入模块打开并展示了图片。下次,我们将继续使用PIL模块中的其他类,来给图片添加水印,并将其保存在本地的电脑上。

总结

相关推荐
Open-AI8 分钟前
Python如何判断一个数是几位数
python
IT技术分享社区8 分钟前
C#实战:使用腾讯云识别服务轻松提取火车票信息
开发语言·c#·云计算·腾讯云·共识算法
极客代码11 分钟前
【Python TensorFlow】入门到精通
开发语言·人工智能·python·深度学习·tensorflow
义小深13 分钟前
TensorFlow|咖啡豆识别
人工智能·python·tensorflow
疯一样的码农17 分钟前
Python 正则表达式(RegEx)
开发语言·python·正则表达式
&岁月不待人&39 分钟前
Kotlin by lazy和lateinit的使用及区别
android·开发语言·kotlin
StayInLove43 分钟前
G1垃圾回收器日志详解
java·开发语言
lzhlizihang1 小时前
【Hive sql 面试题】求出各类型专利top 10申请人,以及对应的专利申请数(难)
大数据·hive·sql·面试题
无尽的大道1 小时前
Java字符串深度解析:String的实现、常量池与性能优化
java·开发语言·性能优化
Tianyanxiao1 小时前
如何利用探商宝精准营销,抓住行业机遇——以AI技术与大数据推动企业信息精准筛选
大数据·人工智能·科技·数据分析·深度优先·零售