python PIL的使用

读取图片并显示

from PIL import Image
im = Image.open("flower-631765_1280.jpg","r")
print(im.size,im.format,im.mode)
im.show() 
#如果要显示多张图片,则需要plt

输出为:((1280, 751), 'JPEG', 'RGB')     

知识点:

  • mode表示图像的模式,定义了像素类型还有图像深度等,常见的有RGB,HSV等。一般来说'L'(luminance)表示灰度图像,'RGB'表示真彩图像,'CMYK'表示预先压缩的图像。
  • im.size输出的是(宽,高)

保存图像

im.save("flower.png",'png')

创建缩略图

im.thumbnail((100,100),resample=Image.BICUBIC)

知识点:

  • 第一个参数是指定的缩略图的大小
  • 第二个是采样的,有Image.BICUBICImage.LANCZOSImage.BILINEARImage.NEAREST这四种采样方法。默认是Image.BICUBIC

resize

im_resize = im.resize((200,200))

函数的表达为:resize(size,resample,box)

知识点:

  • size是转换之后的大小
  • resample是重新采样使用的方法,仍然有Image.BICUBICImage.LANCZOSImage.BILINEARImage.NEAREST这四种采样方法,默认是Image.NEAREST

旋转图像

#逆时针旋转
im.rotate(90).save(r'rotate90.png')
im.rotate(270).save(r'rotate270.png')
im.rotate(180).save(r'rotate180.png')
im.rotate(20).save(r'rotate20.png')
im.rotate(20, expand=True).save(r'rotate20_expand.png')

主要来看一下最后两行代码不同:

旋转图像 

im.transpose(Image.FLIP_LEFT_RIGHT).save(r'transepose_lr.png') #水平翻转
im.transpose(Image.FLIP_TOP_BOTTOM).save(r'transepose_tb.png')  #垂直翻转

裁剪矩形区域

box = (100,100,300,700) #(左上角x,左上角y,右下角x,右下角y)  x是宽度方向,y是高度方向
region = im.crop(box)

 

猜你喜欢

转载自blog.csdn.net/Mr_health/article/details/86230087
今日推荐