PIL的常见示例

#opencv是将图片打开为numpy array的形式
#PIL是将图片打开为PIL.Image的形式
'''
from PIL import ImageColor
#颜色与RGBA值
print(ImageColor.getcolor('red', 'RGBA'))
print(ImageColor.getcolor('black', 'RGB'))
'''
#使用Pillow操作图像
from PIL import Image
im_path = r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\test.png'
im = Image.open(im_path)
width, height = im.size
#宽和高
print(im.size, width, height)
#格式,以及格式的详细描述
print(im.format, im.format_description)
im.save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\testt.png')
im.show()

#新建图像
#Pillow也可以新建空白图像,第一个参数是mode即颜色空间模式,第二个参数指定了图像的分辨率(宽*高),第三个指颜色
#通常使用RGB模式就可以了
newIm= Image.new('RGB', (100, 100), 'red')
newIm.show()
# 传入元组形式的RGBA值或者RGB值
# 在RGB模式下,第四个参数失效,默认255,在RGBA模式下,也可只传入前三个值,A值默认255
blcakIm = Image.new('RGB',(200, 100), (255, 255, 0, 120))
blcakIm.show()

#裁剪图像
im = Image.open(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\test.png')
cropedIm = im.crop((100,100,200,200)) #(x1,x2,y1,y2)
cropedIm.show()

#复制与粘贴图像到另一个图像
im = Image.open(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\test.png')
cropedIm = im.crop((100,100,200,200))
im.paste(cropedIm, (0, 0)) #将图片复制到另一张图片上
im.show()

#调整图片的大小
im = Image.open(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\test.png')
width, height = im.size
resizedIm = im.resize((width, height+(1920-1080)))
resizedIm.show()

#旋转和翻转图像
im = Image.open(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\test.png')
im.rotate(90).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\rotate90.png')
im.rotate(270).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\rotate270.png')
im.rotate(180).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\rotate180.png')
im.rotate(20).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\rotate20.png')
im.rotate(20, expand=True).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\rotate20_expand.png')
im.transpose(Image.FLIP_LEFT_RIGHT).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\transepose_lr.png')
im.transpose(Image.FLIP_TOP_BOTTOM).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\transepose_tb.png')

#图像过滤
from PIL import Image, ImageFilter

im = Image.open(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\test.png')
# 高斯模糊
im.filter(ImageFilter.GaussianBlur).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\GaussianBlur.png')
# 普通模糊
im.filter(ImageFilter.BLUR).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\BLUR.png')
# 边缘增强
im.filter(ImageFilter.EDGE_ENHANCE).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\EDGE_ENHANCE.png')
# 找到边缘
im.filter(ImageFilter.FIND_EDGES).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\FIND_EDGES.png')
# 浮雕
im.filter(ImageFilter.EMBOSS).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\EMBOSS.png')
# 轮廓
im.filter(ImageFilter.CONTOUR).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\CONTOUR.png')
# 锐化
im.filter(ImageFilter.SHARPEN).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\SHARPEN.png')
# 平滑
im.filter(ImageFilter.SMOOTH).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\SMOOTH.png')
# 细节
im.filter(ImageFilter.DETAIL).save(r'C:\\Users\\12271\\Desktop\\代码练习\\python基础练习\\DETAIL.png')

你可能感兴趣的:(PIL的常见示例)