Python PIL模块使用详情(5)PIL学习实例:Image类和ImageDraw模块

如题所述

在Pillow库中,Image类是最重要的类,位于同名模块中。可通过多种方式实例化:从文件读取、处理其他图片或直接创建。使用open函数打开图片,成功返回Image对象,可检查文件内容;若无法打开,则抛出IOError异常。Image对象支持多种方法处理和操作图像,如读写图片、创建缩略图、剪切、粘贴与合并等。Pillow库支持多种图片格式,open函数可自动识别格式,save函数保存图片时可指定格式,否则由文件名扩展名决定。

利用Image类的thumbnail()方法,可以方便地制作缩略图,接收一个尺寸数组参数,将实例缩小至指定尺寸。例如,生成JPEG缩略图,尺寸为原图的四分之一。注意,Pillow不会直接解码或加载图像栅格数据,只会读取文件头信息确定格式、颜色模式和大小,文件剩余部分不主动处理,因此打开图像文件的操作非常快速,与图像大小和压缩方式无关。

Image类包含裁剪子矩形的crop()方法,通过一个元组决定子矩形的区域坐标,从图像中提取指定的子矩形。transpose()方法可将图片左右颠倒、上下颠倒、旋转90°、180°或270°,paste()方法用于将一个Image实例粘贴到另一个Image实例上。在使用crop()方法修改图像文件时,load()方法会被首先调用,因为修改是惰性操作,未调用load()之前,paste使用前不会执行修改。分离和合并颜色通道,对于多通道图像,处理时可分别处理每个通道,最后重新合成多通道图像。Image类还包含resize()和rotate方法,分别用于变换图像大小和旋转角度。

ImageDraw模块提供了Draw类,能够在Image实例上进行简单的2D绘画。可使用此模块创建新图像或修饰现有图像。aggdraw模块是PIL的更高级绘图库。要绘制新图样,首先创建Draw类的实例。Draw类中基本绘画操作包括画直线、填充、描边等,详细使用说明请参考官方文档。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜