Python处理图片函数 怎么用python处理图片

python:PIL图像处理PIL (Python Imaging Library)
Python图像处理库 , 该库支持多种文件格式,提供强大Python处理图片函数的图像处理功能 。
PIL中最重要Python处理图片函数的类是Image类,该类在Image模块中定义 。
从文件加载图像:
如果成功,这个函数返回一个Image对象 。现在你可以使用该对象的属性来探索文件的内容 。
format 属性指定Python处理图片函数了图像文件的格式 , 如果图像不是从文件中加载的则为 None。
size 属性是一个2个元素的元组,包含图像宽度和高度(像素) 。
mode 属性定义了像素格式,常用的像素格式为:“L” (luminance) - 灰度图, “RGB” , “CMYK” 。
如果文件打开失败, 将抛出IOError异常 。
一旦你拥有一个Image类的实例,你就可以用该类定义的方法操作图像 。比如:显示
( show() 的标准实现不是很有效率,因为它将图像保存到一个临时文件,然后调用外部工具(比如系统的默认图片查看软件)显示图像 。该函数将是一个非常方便的调试和测试工具 。)
接下来的部分展示了该库提供的不同功能 。
PIL支持多种图像格式 。从磁盘中读取文件 , 只需使用 Image 模块中的 open 函数 。不需要提供文件的图像格式 。PIL库将根据文件内容自动检测 。
如果要保存到文件,使用 Image 模块中的 save 函数 。当保存文件时,文件名很重要,除非指定格式,否则PIL库将根据文件的扩展名来决定使用哪种格式保存 。
** 转换文件到JPEG **
save 函数的第二个参数可以指定使用的文件格式 。如果文件名中使用了一个非标准的扩展名 , 则必须通过第二个参数来指定文件格式 。
** 创建JPEG缩略图 **
需要注意的是,PIL只有在需要的时候才加载像素数据 。当你打开一个文件时,PIL只是读取文件头获得文件格式、图像模式、图像大小等属性 , 而像素数据只有在需要的时候才会加载 。
这意味着打开一个图像文件是一个非常快的操作,不会受文件大小和压缩算法类型的影响 。
** 获得图像信息 **
Image 类提供了某些方法,可以操作图像的子区域 。提取图像的某个子区域,使用 crop() 函数 。
** 复制图像的子区域 **
定义区域使用一个包含4个元素的元组,(left, upper, right, lower) 。坐标原点位于左上角 。上面的例子提取的子区域包含300x300个像素 。
该区域可以做接下来的处理然后再粘贴回去 。
** 处理子区域然后粘贴回去 **
当往回粘贴时,区域的大小必须和参数匹配 。另外区域不能超出图像的边界 。然而原图像和区域的颜色模式无需匹配 。区域会自动转换 。
** 滚动图像 **
paste() 函数有个可选参数,接受一个掩码图像 。掩码中255表示指定位置为不透明 , 0表示粘贴的图像完全透明,中间的值表示不同级别的透明度 。
PIL允许分别操作多通道图像的每个通道,比如RGB图像 。split() 函数创建一个图像集合,每个图像包含一个通道 。merge() 函数接受一个颜色模式和一个图像元组,然后将它们合并为一个新的图像 。接下来的例子交换了一个RGB图像的三个通道 。
** 分离和合并图像通道 **
对于单通道图像 ,  split() 函数返回图像本身 。如果想处理各个颜色通道,你可能需要先将图像转为RGB模式 。
resize() 函数接受一个元组 , 指定图像的新大小 。
rotate() 函数接受一个角度值,逆时针旋转 。
** 基本几何变换 **
图像旋转90度也可以使用 transpose() 函数 。transpose() 函数也可以水平或垂直翻转图像 。

推荐阅读