Python图像处理,Pillow库果然很强悍(17)

小朋友们好,大朋友们好!

我是猫妹,一名爱上Python编程的小学生。

欢迎和猫妹一起,趣味学Python。

今日主题

今天我们学习下如何用Python处理图像。

咱们今天用到的库是什么呢?

就是大名鼎鼎的Pillow。

Pillow是第三方库,需要使用pip安装(pip install pillow)。

它简单易用,功能强大。

入门常识

颜色值

谈到图像,离不开色彩,Python中颜色怎么表示呢?

Python中,一般使用RGB或RGBA来表示。

RGB是一种色彩标准,用Red、Green、Blue这三原色来得到各种颜色。

RGBA在RGB的基础上增加了不透明度A(Alpha)。

Python中使用元组来表示色彩,比如(R,G,B)或(R,G,B,A)。

前者是RGB,后者是RGBA。

取值范围都是0~255,A=0表示完全透明,A=255表示完全不透明。

常用颜色的英文名和对应的RGB如下:

  • while:(255,255,255)

  • black:(0,0,0)

  • red:(255,0,0)

  • green:(0,128,0)

  • blue:(0,0,255)

  • yellow:(255,255,0)

  • gray:(128,128,128)

  • purple:(128,0,128)

像素

像素指的是图像构成的基本单位,也就是一个点。

一张图像是由很多个小方块组成,其中每个小方块就是一个像素。

比如,我们平时说的显示器分辨率是800像素*600像素,就是屏幕由宽度800和高度600个小方块。

坐标系

要在屏幕上定位一个像素的位置,需要使用到坐标系。

我们经常见到的坐标系是数学坐标系,不过Pillow使用的是图像坐标系。

两者的唯一区别是y轴的正方向。

数学坐标系一般用于数学上,Python中大多数使用的都是图像坐标系。

图片操作

打开图片

from PIL import Image

img=Image.open("file path")

我们首先导入Pillow库,然后打开一个图像文件,返回值是一个Image对象。

我们可以用Image对象的属性和方法来对图片进行操作。

属性如下

  • filename:图片名称

  • format:图片格式

  • size:图片大小,单位为字节

方法如下

  • show():显示图片

  • save():报错图片

  • resize():改变图片大小

  • crop():切割图片

  • rotate():旋转图片

  • transpose():翻转图片

  • copy():复制图片

  • paste():粘贴图片

我们赶快简单测试下吧!

图像处理

获取图片信息:

显示图片:

保存图片:

改变大小:

切割图片:

旋转图片:

翻转图片:

复制copy和粘贴paste图片:

创建区域:

语法为:Image.new("RGB",(x,y),color)

第一个参数为颜色模式,可设置为RGB或RGBA

第二个参数元组,x表示宽度,y表示高度

第三个参数颜色值或颜色透明度值

返回对象是一个Image对象,Image.open()和Image.new()这个两个方法都会返回一个Image对象。

绘制图形

Pillow中的ImageDraw模块可以绘制各种图形。

通过ImageDraw模块的Draw()方法创建一个Draw()对象,然后根据它来绘制各种图形。

点:

直线:

矩形:

还可以绘制多边形、圆弧、扇形、圆、椭圆等。

这里猫妹就不贴图了,都是类似的。

绘制文本

Pillow中的ImageDraw模块可以绘制文本。

可以参考咱们之前这篇文章哦!

《狂飙》壁纸大嫂如此惊艳,做成日历壁纸天天看(7)

最后我们再介绍下ImageFront.truetype(url,size)

url:表示字体文件所在路径,其扩展名通常为ttf。

size:表示字体大小的点数(非像素),这个点数是一个整数。

Pillow库创建的PNG图片默认每英寸(1英寸约定于2.54厘米)72像素,那么1点就是1/72像素。

注意到上面的ImageFilter,可以对图片进行美化,它有各种滤镜效果。

ImageFilter.属性

ImageFilter.方法名()

好了,我们今天就学到这里吧!

如果遇到什么问题,咱们多多交流,共同解决。

我是猫妹,咱们下次见!

猜你喜欢

转载自blog.csdn.net/parasoft/article/details/129773189