PIL 图像处理库学习:
- 图像归档(Image Archives)。PIL非常适合于图像归档以及图像的批处理任务。你可以使用PIL创建缩略图,转换图像格式,打印图像等
- 图像展示(Image Display)。PIL较新的版本支持包括Tk PhotoImage,BitmapImage还有Windows DIB等接口。PIL支持众多的GUI框架接口,可以用于图像展示。
- 图像处理(Image Processing)。PIL包括了基础的图像处理函数。
open(filename,mode)(打开一张图像)
from PIL import Image
im = Image.open('test001.png') # 打开一个本目录图像文件
w, h = im.size # 获得图像尺寸:
im.thumbnail((w//2, h//2)) # 缩放到50%:(创建缩略图)
im.save('test002.png')
#crop( )(裁剪区域)
cut_pic = (50,100,300,200)
new_pic = im.crop(cut_pic)
new_pic.show()
im.crop()
(upper_left_x,upper_left_y,lower_right_x,lower_right_y),分别表示裁剪矩形区域的左上角x,y坐标,右下角的x,y坐标,规定图像的最左上角的坐标为原点(0,0),宽度的方向为x轴,高度的方向为y轴。
# - Image.FLIP_LEFT_RIGHT,表示将图像左右翻转
# - Image.FLIP_TOP_BOTTOM,表示将图像上下翻转
# - Image.ROTATE_90,表示将图像逆时针旋转90°
# - Image.ROTATE_180,表示将图像逆时针旋转180°
# - Image.ROTATE_270,表示将图像逆时针旋转270°
# - Image.TRANSPOSE,表示将图像进行转置(相当于顺时针旋转90°)
# - Image.TRANSVERSE,表示将图像进行转置,再水平翻转
im_rotate = im.transpose(Image.ROTATE_270) #表示将图像逆时针旋转
im_rotate.show()
#ImageSequence()(处理图像序列) gif图像分解
gif = Image.open("100.gif")
for i,frame in enumerate(ImageSequence.Iterator(gif),1):
if frame.mode == 'JPEG':
frame.save("%d.jpg" %i)
else:
frame.save("%d.png" % i)