最近我看好多人的朋友圈都流行发九宫格照片,别人都能拥有,码农必须有。当然,我们要比其他人更为高调,我们就用Python来对图片进行处理,这肯定能秀翻你的朋友圈。废话不说,开干。
一、图片导入与信息查看
在对图像进行处理之前,我们首先需要加载出来一张图片,我们以加载文件中存在的图像为例子,加载图片并查看图片信息,操作如下:
###Python学习交流Q群:906715085### from PIL import Image img = Image.open(\'G:\\image\\horse.jpeg\',\'r\') img.show() #展示图像 print(img.size,img.format,img.mode)
Image中利用open(filename,mode)函数打开图像,通过show函数可以展示储存在G盘image文件夹下名horse且格式为jpeg的图像,如下所绘。
通过返回对象的属性,来查看图像信息。其中,size通过像素表示打开图像的大小——宽度和高度,每一个像素代表一个坐标单位;format表示图像的格式,包括PNG、JPEG等;mode表示图像的模式,包括RGB、HSV等。返回的信息如下所示:
二、图像的裁剪
当我们拍摄出废片时,不要慌张,可以视情况截取出自己需要的部分来拯救废片。裁剪图像用的函数为crop(box),它返回的也是一个Image对象,其中box是一个含有四个数字的元组,前两个数字表示裁剪的矩形图像区域中左上角的横纵坐标,后两个数字代表右下角的横纵坐标,我们可以根据图片的大小,输入相应的坐标进行裁剪。
###Python学习交流Q群:906715085###
matrix = (300,250,700,500) img_horse = img.crop(matrix) img_horse.show()
截取到的图像如上所示,我们就得到了大图中的一部分,如果要对处理后的图像进行保存,可以使用save(filename,format)函数来保存指定格式的图像。
img_horse.save(\'3.png\',\'png\')
三、图像亮度的增强
有时候拍出来的照片亮度不够或者过亮都会成为废片,我们可以使用图像增强函数ImageEnhance来对图片的亮度进行调整,我们仍以“horse.jpeg”图像为例子,将亮度增加50%。
from PIL import ImageEnhance bright = ImageEnhance.Brightness(img) #ImageEnhance.Brightness用于增加图片的亮度,并返回一个Image对象bright img_bright = bright.enhance(1.5) img_bright.show()
结果如下所示:
四、九宫格照片
想发一张图,又想发九宫格,我们通过Python来操作一下,就可以实现啦!
###Python学习交流Q群:906715085###
from PIL import Image im = Image.open(\'G:\\image\\horse.jpeg\') # 读取图片 width = im.size[0]//3 height = im.size[1]//3 # 宽高各除 3,获取裁剪后的单张图片大小 start_x = 0 start_y = 0 # 裁剪图片的左上角坐标 im_name = 1 # 用于给图片命名 for i in range(3): # 循环裁剪图片 for j in range(3): crop = im.crop((start_x, start_y, start_x+width, start_y+height)) crop.save(str(im_name) + \'.jpeg\') # 裁剪图片并保存 start_x += width im_name += 1 # 将左上角坐标的 x 轴向右移动 start_x = 0 # 当第一行裁剪完后 x 继续从 0 开始裁剪 start_y += height # 裁剪第二行
我们执行上面的代码后,就会得到1~9格式为“jpeg”的图片,我们将图片编辑一下就可以发朋友圈啦!
五、动图转图片
有时候看到一个可爱的动图时,特别喜欢其中的某个瞬间,奈何手速不够快,没法准确的截取到,我们可以使用图像序列ImageSequence模块来遍历gif图像中的所有帧并保存为图像,导入如下的海绵宝宝动图:
from PIL import ImageSequence from PIL import Image gif = Image.open(\'G:\\image\\海绵宝宝.gif\') for i,frame in enumerate(ImageSequence.Iterator(gif)): if frame.mode == \'JPEG\': frame.save(\"%d.jpg\" %i) else: frame.save(\"%d.png\" % i)
得到如下结果:
我们可以从中挑选自己喜欢的图片进行拼接,做成那种拼接图,看起来也是不一样的感觉呢!
以上介绍的只是PIL可实现的众多功能中微不足道的几种方法啦~大家可以使用这几种方法来改变一下自己朋友圈的照片,快去实践一下吧!这一篇到这里就没有了,想看下一篇就要关注我才能看到最新的。
来源:https://www.cnblogs.com/123456feng/p/16076916.html
本站部分图文来源于网络,如有侵权请联系删除。