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

news/2024/9/22 16:12:48/

目录

引言

目标

安装模块

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模块中的其他类,来给图片添加水印,并将其保存在本地的电脑上

总结


http://www.ppmy.cn/news/1464300.html

相关文章

新手困 ViewModel与Activting的databinding2个对象 区别

在Android开发中,ViewModel与Activity的Binding并不是同一个概念,它们分别指的是不同的功能和用途。 ViewModel: ViewModel是一个为UI界面提供数据的类,它负责管理Activity或Fragment的数据。ViewModel类持有数据的引用,即使配置…

Java基础学习:深入解析Java中的位运算符

在Java中,位运算符用于对整数类型的值进行位运算。以下是Java中的位运算符: 位与(&):两位都为1时,结果为1,否则为0。 位或(|):两位中有1个为1,结果为1。 位非(~):位的反&#…

vs工程添加自定义宏

一、简介 用户可以添加自定义宏变量方便工程路径名称的修改和配置 例:$(SolutionDir) 为解决方案路径,$(PojectDir) 为工程所在路径 测试环境:vs2017,qt5.14.0 二、配置 1、打开属性窗口:视图-》其他窗口-》属性管…

方法的重写--5.29

当子类对父类的方法不满意时,可以进行重写,但是方法名字要与父类一样。 举例,我用people来举例,我是打工人,然后再创一个student类,重写方法我不是打工人,我是读书人。代码如下,发现…

代码随想录第二十二天 | 654.最大二叉树, 617.合并二叉树, 700.二叉搜索树中的搜索, 98. 验证二叉搜索树

654.最大二叉树 看完想法&#xff1a;构造树一般采用的是前序遍历&#xff0c;因为先构造中间节点&#xff0c;然后递归构造左子树和右子树 确定递归函数的参数和返回值:返回TreeNode* 输入vector<int>& num; 确定终止条件:当输入数组大小1的时候&#xff0c;传入数…

vs2013使用qt Linguist以及tr不生效问题

一、qt Linguist&#xff08;语言家&#xff09;步骤流程 1、创建翻译文件,在qt选项中 2.选择对应所需的语言&#xff0c;得到.ts后缀的翻译文件 3.创建.pro文件&#xff0c;并将.ts配置在.pro文件中 3.使用qt Linguist 打开创建好的以.ts为后缀的翻译文件&#xff0c;按图所示…

产品经理-需求收集(二)

1. 什么是需求 指在一定的时期中&#xff0c;一定场景中&#xff0c;无论是心理上还是生理上的&#xff0c;用户有着某种“需要”&#xff0c;这种“需要”用户自己不一定知道的&#xff0c;有了这种“需要”后用户就有做某件事情的动机并促使达到其某种目的&#xff0c;这也就…

虹科Pico汽车示波器 | 免拆诊断案例 | 2012 款雪佛兰科鲁兹车偶尔多个故障灯异常点亮

故障现象 一辆2012款雪佛兰科鲁兹车&#xff0c;搭载1.8 L 发动机&#xff0c;累计行驶里程约为9.6万km。该车组合仪表上的发动机故障灯、ABS故障灯及动力转向故障灯偶尔异常点亮&#xff0c;同时发动机转速表和发动机冷却液温度表的指针会突然归零&#xff0c;严重时发动机无…