python之pil的使用详解

python之pil的使⽤详解
⼀:PIL功能介绍与安装
PIL,全称Python Image Library,主要作⽤是图像处理,可⽤于图⽚剪切、粘贴、缩放、镜像、⽔印、颜⾊块、滤镜、图像格式转换、⾊场空间转换、验证码、旋转图像、图像增强、直⽅图处理、插值和滤波等功能。不过只⽀持到Python 2.7。Pillow是PIL的⼀个派⽣分⽀,但如今已经发展成为⽐PIL本⾝更具活⼒的图像处理库。我们需要安装的就是Pillow。
PIL具体⽤途:
图像归档(Image Archives)。PIL⾮常适合于图像归档以及图像的批处理任务。你可以使⽤PIL创建缩略图,转换图像格式,打印图像等等。
图像展⽰(Image Display)。PIL较新的版本⽀持包括Tk PhotoImage,BitmapImage还有Windows DIB等接⼝。PIL⽀持众多的GUI框架接⼝,可以⽤于图像展⽰。
电厂脱硫塔防腐图像处理(Image Processing)。PIL包括了基础的图像处理函数,包括对点的处理,使⽤众多的卷积核(convolution kernels)做过滤(filter),还有颜⾊空间的转换。PIL库同样⽀持图像的⼤⼩转换,图像旋转,以及任意的仿射变换。PIL还有⼀些直⽅图的⽅法,允许你展⽰图像的⼀些统计特性。这个可以⽤来实现
图像的⾃动对⽐度增强,还有全局的统计分析等。
pip install Pillow
起重量限制器
貌似Pillow是默认安装好了的,可以通过pip list查看是否已经安装
⼆:PIL的基本操作
以下是打开图⽚保存图⽚的基本操作。
from PIL import Image
# 1.打开图⽚
img = Image.open("image/10.jpg")
# 2.显⽰图⽚(执⾏显⽰图⽚后线程会中断,关闭图像后恢复)
img.show()
# 3.保存图⽚
img.save("image/xiaomai.jpg")
我在尝试的过程中发现,jpg格式的图⽚保存为jpg格式时会报错:OSError: cannot write mode RGBA
as JPEG,经过查阅资料发现错误原因主要是因为jpg格式和JPG格式图⽚的通道数不同。
jpg是四通道:RGBA意思是红⾊,绿⾊,蓝⾊,Alpha的⾊彩空间,Alpha指透明度
JPG是三通道:RGB意思是红⾊,绿⾊,蓝⾊
所以,jpg格式图⽚要保存成JPG格式就要丢弃A通道:
from PIL import Image
# 1.打开图⽚
img = Image.open("image/10.jpg")
# 2.显⽰图⽚(执⾏显⽰图⽚后线程会中断,关闭图像后恢复)
img.show()
# 3.保存图⽚
img = vert("RGB")
img.save("image/xiaomai.jpg")
下⾯是图⽚旋转的代码:
from PIL import Image
# 1.打开图⽚
珍珠胸花img = Image.open("pli/7.jpg")
# 2.⽔平翻转
img1 = anspose(Image.FLIP_LEFT_RIGHT)
# 3.保存图⽚
img1.save("pli/1.jpg")
# 4.垂直翻转
img2 = ate(180)
# 5.保存照⽚
img2.save("pli/2.jpg")
# 6.⽔平+垂直翻转
img3 = anspose(Image.FLIP_LEFT_RIGHT).rotate(180)
# 7.保存图⽚
img3.save("pli/3.jpg")
三:给图⽚增加⽂字
要在图像上绘制⽂本要⽤到 PIL 的两个模块:ImageDraw和ImageFont。 ImageDraw ⽤于创建绘图对象,ImageFont⽤于加载字体。from PIL import Image, ImageDraw, ImageFont
# 1.打开图⽚
img = Image.open("image/10.jpg")
# 2.调⽤画图模块
draw = ImageDraw.Draw(img)
# 3.设置字体
tfont = uetype("萌神⼿写体.ttf", 24)
# 4.添加⽂字
"""
参数⼀:⽂字在图⽚的位置:(x, y)
参数⼆:⽂字内容
参数三:字体颜⾊,当然颜⾊也可以⽤RGB值指定参数四:字体类型
喷嘴清洗
"""
<((50, 30), "eyes++", fill="green", font=tfont) # 5.保存图⽚
img.save("image/addWord.jpg")
# 6.显⽰图⽚
img.show()
四:PIL滤镜功能
from PIL import Image, ImageFilter
img = Image.open("image/10.jpg")
img = img.filter(ImageFilter.CONTOUR)
img.save("image/Filter.jpg")
img.show()
滤镜类型如下:
五:PIL镜像功能
from PIL import Image
img = Image.open("image/10.jpg")
img = anspose(Image.FLIP_LEFT_RIGHT)
img.save("image/mirror.jpg")
www.dd13transpose
有这么⼏种模式
FLIP_LEFT_RIGHT:左右镜像
FLIP_TOP_BOTTOM:上下镜像
ROTATE_90:逆时针转90度文字拼接
ROTATE_180:逆时针转180度
ROTATE_270:逆时针转270度
TRANSPOSE:像素矩阵转置
TRANSVERSE
最后⼀种模式我也不知道什么意思,也没查到,但效果是下⾯这样的,盲猜是对⾓线对转。。。。。
除了使⽤transpose制造镜像,使⽤rotate也可以的,不过rotate只能旋转:
发现这样旋转会有棱⾓,然后经过某位不愿透露姓名的⼤佬指点,发现是rotate旋转只是像素旋转,画布不动,于是我写下了以下测试代码:from PIL import Image
img = Image.open("image/12.jpg")
img1 = anspose(Image.ROTATE_90)
img1.save("image/test.jpg")
img2 = ate(90)
img2.save("image/test2.jpg")

本文发布于:2024-09-22 15:47:58,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/345030.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图像   旋转   格式   转换   安装   字体   图像处理   保存
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议