初学python的PIL模块

这个星期事情比较多,所以学习的任务没有完成的很完美,不过也还是学了一点东西的。下面来介绍一下PIL模块。

对PIL的学习还是要从sae平台上没办法读写本地文件说起。因为我要一次性上传好多张图片,所以不想一张一张的上传。开始我想把他们压缩成压缩文件但是在服务器端解压有事个头疼的问题,所以我想用svn把要上传的图片传到和代码同一目录下,再传到storage里。这个过程就要用到sae上的文件读取,可是sae上有限制,所以就没办法,于是就看我师傅的已经做好的网站发现了PIL这个模块,于是就学习了这个模块,并应用了。

PIL(pyhon imaging labrary)模块是python自带的进行图像处理的模块,有自己的函数库,是python常用是的图像处理库。

首先,我在本地进行的一些实验看不到结果。因为我发现我看不到我对图片的操作结果,虽然我知道show()方法可以但是我的电脑不知道怎么回事就是显示不了。所以我就在sae上直接实践了,因为我不用对图片进行任何的额外操作只需要把图片打开并保存在storage上就行了。

以上就是在sae平台上部署的代码部分。在开始还要有:from PIL imoprt Image.通过这样操作我就能把和代码同一级的图片传到storage上保存了。首先就是Image的open方法,通过open方法把图片打开就能对图片进行一系列的操作了。Image.open(file,mode),mode可以省略,如果不省略那就必须是'r',file就是文件的路径名。PIL中属性比较多,下面介绍几个。主要有format,mode,size,platette等等,format就是图片的属性就是图片的后缀名;size是图片的大小,返回值是一个tuple。其他的属性可以参看官方文档http://effbot.org/imagingbook/image.htm。这个文档把PIL介绍的比较完整。

这是三个属性的例子。

对于方法的介绍,我介绍几个我认为比较有趣的。第一个就是transpose(),im.transpose(method)method可以是FLIP_LEFT_RIGHT,FLIP_TOP_BOTTOM,ROTATE_90,ROTATE_180,ROTATE_270。前两个分别是把图片进行左右和上下反转。后面三个是把图片逆时针旋转90,180,270度。

第二个就是比较有用的save(),这个方法可以把经过操作的图片保存在另外一个对象中,比如上边的例子中我把.jpg的图片一.jpeg的形式保存在了o这个文件中,最后通过getvalue()方法保存在storage中。这个save(outfile,options...)的参数主要取决与第一个参数,如果第一个参数是一个实例,那么就必须有第二个参数format用来声明保存的格式,比如我的例子中,o就是一个实例,我以jpeg的格式把图片保存。如果第一个参数是filename,那么后边的参数就可以省略。

第三个是rotate(),这个方法是把图片逆时针旋转参数个角度。im.rotate(45)就是把图片逆时针旋转45度。

第四个就是resize()方法,这个就比较直白就是重新设置图片的大小,比如im.resize((128,128))就是把图片的大小改成128*128的规格。

对于PIL模块还有很多的方法和属性,如果大家比较感兴趣还可以到官方文档中仔细的阅读http://effbot.org/imagingbook/image.htm。官方文档把属性和方法将的比较详细和清楚更适合大家学习。

原文地址:https://www.cnblogs.com/GresonFrank/p/python-PIL.html