当前位置:嗨网首页>书籍在线阅读

06-处理Image数据类型

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

19.2.1 处理Image数据类型

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 属性是一个元组,包含该图像的宽度和高度的像素数❶。我们可以将元组中的值赋给 widthheight 变量❷,以便分别访问宽度❸和高度❹。 filename 属性描述了原始文件的名称。 formatformat_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值的 4 整数元组。你可以用 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。