PIL库的概述:
PIL库可以完成图像归档和图像处理两方面功能需求:
图像归档:对图像进行批处理、生成图像预览、图像格式转换等;
图像处理:图像基本处理、像素处理、颜色处理等。
PIL库Image类:
from PIL import Image m = Image.open("D:\picture.jpg") #读取照片文件
生成缩略图:
im.thumbnail((128, 128)) #(128,128)是缩略图的尺寸。 im.save("birdnestTN","JPEG") im.show() # 显示缩略图 (缩略图不能直接双击打开,而可以使用PIL.image的open读取,然后使用show()方法进行显示)
旋转和缩放:
im.rotate(45) #Image.rotate(angle) 按angle角度旋转图像 im.resize(128) #Image.resize(size) 按size大小调整图像 im.show()
图像颜色交换
r, g, b = im.split() #提取RGB图像的每个颜色通道 om = Image.merge("RGB", (b, g, r)) #将各独立通道再合成一幅新的图像 om.save('pictureBGR.jpg')
图像的过滤和增强
图像轮廓获取:
from PIL import Image from PIL import ImageFilter im = Image.open("picture.jpg") om = im.filter(ImageFilter.CONTOUR) om.save('pictureContour.jpg')
调整色彩度、亮度、对比度、锐化
浮雕化
from PIL import Image from PIL import ImageFilter im = Image.open("picture.jpg") om = im.filter(ImageFilter.EMBOSS) om.save('picture1.jpg')
提取动图每一帧
from PIL import Image im = Image.open('动图.gif') # 读入一个GIF文件 try: im.save('picframe{:02d}.png'.format(im.tell())) while True: im.seek(im.tell()+1) im.save('picframe{:02d}.png'.format(im.tell())) except: print("处理结束")
中文字符画
from PIL import Image ascii_char = list('中国真是个伟大的国家') def get_char(r, b, g, alpha=256): if alpha == 0: return ' ' gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) unit = 256 / len(ascii_char) return ascii_char[int(gray//unit)] def main(): im = Image.open('pic.PNG') WIDTH, HEIGHT = 100, 60 im = im.resize((WIDTH, HEIGHT)) txt = "" for i in range(HEIGHT): for j in range(WIDTH): txt += get_char(*im.getpixel((j, i))) txt += ' ' fo = open("pic_char.txt","w") fo.write(txt) fo.close() main()