1.Pillow库介绍
Pillow是Python里的图像处理库,提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存、图像显示、格式转换以及基本的图像处理操作等;
安装
pip install pillow
2.Image类
PIL中最重要的类是Image类,使用前需要先从PIL中导入Image类,要从文件加载图像可以使用Image类中的open()函数:Image.open(fp, mode =‘r’ ),如果加载成功则会返回一个Image对象,fp是图片路径,mode是模式。图像的对象属性有filename源文件的文件名或路径、format图片的格式、size图片大小,以像素为单位、mode图片模式、width图像宽度、height图像高度、palette调色板表等;save(fp, format=None, **params):保存图像到给定的文件名下,如果没有指定格式则可以使用文件扩展名来确定要使用的格式,无返回值。fp是文件名或路径,format可选的格式覆盖;thumbnail(size, resample=3):指定图片的像素,size是大小,resample是重采样滤波器,可以是Image.NEAREST、Image.BILINEAR、Image.BICUBIC或者Image.LANCZOS,默认为Image.BICUBIC;rotate(angle, resample=0, expand=0, ceter=None, translate=None):旋转图片的方向,返回旋转后的图像副本,一个Image对象 。angle角度,逆时针旋转、resample重采样滤波器、expand是否展开、center旋转中心、translate旋转后;filter(filter):给图片添加滤镜,返回一个Image对象,filter是过滤器;transpose(method):旋转或翻转图像,返回旋转或翻转后的图像副本,一个Image对象。method可以是* Image.FLIP_LEFT_RIGHT、Image.FLIP_TOP_BOTTOM、Image.ROTATE_90、Image.ROTATE_180、* Image.ROTATE_270、Image.TRANSPOSE或者Image.TRANSVERSE;show():显示这个图像,此方法主要用于调试目的;
from PIL
import Image
im
= Image
.open('./image.jpg')
print(im
.format, im
.size
, im
.mode
)
im
.thumbnail
((128,128))
im
.save
('./image_128_128.jpg')
dest_im
= im
.rotate
(90)
dest_im
.save
('./image_rotate.jpg')
dest_im
= im
.filter(ImageFilter
.GaussianBlur
)
dest_im
.show
()
dest_im
= im
.transpose
(Image
.FLIP_LEFT_RIGHT
)
dest_im
= im
.transpose
(Image
.FLIP_TOP_BOTTOM
)
dest_im
.show
()
image
= Image
.open('image.jpg')
img_draw
= ImageDraw
.Draw
(image
)
img_draw
.text
((770,250),'hello world',fill
='green')
image
.show
()
如果你依然在编程的世界里迷茫,
不知道自己的未来规划,
对python感兴趣,
这里推荐一下我的学习交流圈QQ群:
895 797 751,
里面都是学习python的,
3.ImageDraw模块
ImageDraw模块为Image对象提供简单的2D图形,可以使用此模块创建新图像,注释或润饰现有图像,以及动态生成图形以供Web使用;ImageDraw.Draw(im,mode=None):创建可用于在给定图像中绘制的对象,im要绘制的图像、mode 用于颜色值的可选模式;ImageDraw.text(xy,text,fill=None,font=None,anchor=None,spacing=0,align =“left”,direction = None,features=None,language=None):在给定位置绘制字符串,xy文本的左上角、text要绘制的文本、fill用于文本的颜色、* direction文字的方向、language文字的语言;ImageDraw.point(xy,fill=None):在给定坐标处绘制点,xy元组的序列或类似的数值、fill用于点的颜色; 更多可以查看网址:https://pillow.readthedocs.io/en/latest/reference/index.html
4.批量将图片的大小设置为指定大小
import os
from PIL
import Image
project_dir
= os
.path
.dirname
(os
.path
.abspath
(__file__
))
input = os
.path
.join
(project_dir
, 'src')
output
= os
.path
.join
(project_dir
, 'dest')
def modify():
os
.chdir
(input)
for image_name
in os
.listdir
(os
.getcwd
()):
print(image_name
)
im
= Image
.open(os
.path
.join
(input, image_name
))
im
.thumbnail
((128, 128))
im
.save
(os
.path
.join
(output
, image_name
))
if __name__
== '__main__':
modify
()