Image 对象有一些有用的属性,提供了加载的图像文件的基本信息:它的宽度
和高度、文件名和图像格式(如JPEG、GIF 或 PNG)。例如,在交互式环境中输入以下代码:
>>> from PIL import Image
>>> catIm = Image.open('zophie.png')
>>> catIm.size
➊ (816, 1088)
➋ >>> width, height = catIm.size
➌ >>> width
816
➍ >>> height
1088
>>> catIm.filename
'zophie.png'
>>> catIm.format
'PNG'
>>> catIm.format_description
'Portable network graphics'
➎ >>> catIm.save('zophie.jpg')
从 Zophie.png 得到一个 Image 对象并保存在 catIm 中后,我们可以看到该对象的 size
属性是一个元组,包含该图像的宽度和高度的像素数➊。我们可以将元组中的值赋给 width 和 height
变量➋,以便分别访问宽度➌和高度➍。filename 属性描述了原始文件的名称。format
和format_description 属性是字符串,描述了原始文件的图像格式(format_description 比较详细)。
最后,调用 save()方法,传入'zophie.jpg’,将新图像以文件名 zophie.jpg 保存到硬盘上➎。Pillow 看到文件扩展名是 jpg,就自动使用
JPEG 图像格式来保存图像。现在硬盘上应该有两个图像,zophie.png 和 zophie.jpg。虽然这些文件都基于相同的图像,但它们不一样,因为格式不同。
Pillow 还提供了 Image.new()函数,它返回一个 Image 对象。这很像 Image.open(),不过
Image.new()返回的对象表示空白的图像。Image.new()的参数如下:
• 字符串'RGBA',将颜色模式设置为 RGBA(还有其他模式,但本书没有涉及)。
• 大小,是两个整数元组,作为新图像的宽度和高度。
• 图像开始采用的背景颜色,是一个表示 RGBA 值的四整数元组。你可以用
ImageColor.getcolor()函数的返回值作为这个参数。另外,Image.new()也支持传入标准颜色名称的字符串。
例如,在交互式环境中输入以下代码:
>>> from PIL import Image
➊ >>> im = Image.new('RGBA', (100, 200), 'purple')
>>> im.save('purpleImage.png')
➋ >>> im2 = Image.new('RGBA', (20, 20))
>>> im2.save('transparentImage.png')
这里,我们创建了一个 Image 对象,它有 100 像素宽、200 像素高,带有紫色背景➊。然后,该图像存入文件 purpleImage.png 中。我们再次调用
Image.new(),创建另一个 Image 对象,这次传入(20,
20)作为大小,没有指定背景色➋。如果未指定颜色参数,默认的颜色是不可见的黑色(0,0,0,0),因此第二个图像具有透明背景,我们将这个 20×20 的透明正方形存入
transparentImage.png。