首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

我是猫妹,一名爱上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模块可以绘制文本。

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

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

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

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

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

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

ImageFilter.属性

ImageFilter.方法名()

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

我是猫妹,咱们下次见!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230326A00PYS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券