2023年6月21日发(作者:)

Python常⽤模块之PIL(⼿册篇:Image模块)

Image模块图像模块提供了⼀个具有相同名称的类,⽤于表⽰⼀个PIL的图像。该模块还提供了许多功能,包括加载图⽚⽂件函数和创建新的图像函数。

模块⽰例:下⾯的程序加载⼀个图像,再旋转45度,并使⽤⼀个外部查看器(通常在Unix上的xv[1],在Windows上的看图程序[2])显⽰它。1 # 打开,旋转,展⽰⼀张图⽚(使⽤默认查看器)2 from PIL import Image3 im = ("")4 (45).show() 下⾯的程序将在当前⽬录中创建所有JPEG图像的缩略图(尺⼨:128 x128)。

1 # 创建缩略图 2 from PIL import Image 3 import glob, os 4

5 size = 128, 128 6

7 for infile in ("*.jpg"): 8 file, ext = xt(infile) 9 im = (infile)10 ail(size, IAS)11 (file + ".thumbnail", "JPEG")

模块函数:(mode, size) ⇒ (mode, size, color) ⇒ image使⽤给定模式(mode)和⼤⼩(size)创建⼀个新的图⽚。⼤⼩(size)使⽤的是(宽度、⾼度)⼆元组,并以像素为单位。对于单通道图像,颜⾊(color)使⽤单⼀值;对于多通道图像,颜⾊(color)使⽤多元组(每通道使⽤⼀个值)。1.1.4及之后版本中,您还可以使⽤颜⾊名称(有关详细信息,请参阅模块⽂档)如果省略颜⾊参数(color),图像使⽤零填充(这通常对应于⿊⾊)。如果颜⾊为空(None),图像不会进⾏初始化。如果你打算在⼀幅图像上粘贴或描绘⼀些东西,这可能是有⽤的。

1 from PIL import Image2 im = ("RGB", (512, 512), "white")

(file) ⇒ (file, mode) ⇒ image打开并识别给定的图像⽂件。这是⼀个便利的操作,函数读取⽂件头,但直到你尝试处理数据,实际图像数据才会从⽂件中读取(调⽤load⽅法可以强制加载)。如果模式参数(mode)要求赋值,它必须是“r”。你可以使⽤⼀个字符串(代表⽂件名)或⼀个⽂件对象作为⽂件参数(file)。在后⼀种情况下,⽂件对象必须实现read、seek,以及tell⽅法,并要求以⼆进制模式打开。

1 from PIL import Image2 im = ("")1 from PIL import Image2 from StringIO import StringIO3

4 # read data from string5 im = (StringIO(data))

(image1, image2, alpha) ⇒ image使⽤常数alpha,将给定的两张图像进⾏混合,创建⼀个新的图像。待混合的两张图像都必须有相同的⼤⼩和模式。    out = image1 * (1.0 - alpha) + image2 * alpha如果alpha为0.0,返回第⼀张图像image1的副本。如果alpha为1.0,返回第⼆个图像image2的⼀个副本。对alpha值没有限制。如果有必要,结果将被裁剪以适应允许输出范围。

ite(image1, image2, mask) ⇒ image

模块属性:图像类Image的实例有以下属性: ⇒ string or None源⽂件的⽂件格式。对库本⾝创建的图像(在现有图像上通过⼀个⼯⼚函数,或通过运⾏⽅法),这个属性设置为None。

⇒ string图像模式。这是⼀个字符串,指定图像所使⽤的像素格式。典型值有“1”、“L”、“RGB”或“CMYK”。取值完整列表请参阅。

⇒ (width, height)图像⼤⼩,以像素为单位。⼤⼩以⼆元组(width,height)表⽰。 e ⇒ palette or None如果调⾊板palette存在。如果模式mode为“P”,该值应该为ImagePalette类的⼀个实例。否则,它应该设置为None。

⇒ dictionary与图像相关的数据字典。⽂件处理程序将使⽤该字典,通过使⽤各种⾮图像信息读取该⽂件。有关详细信息,请参阅各种⽂件处理程序的⽂档。当返回新的图像时,⼤多数⽅法忽略该字典;因为关键字不是标准化的,⽅法是不可能知道操作是否影响了字典。以后如果你需要信息,保持⽅法返回的info字典的索引。

未完,待续...

注解:[1] 暂还不理解Unix上的xv表⽰什么?应该也是⼀个显⽰图像的⼯具。您要是知道表⽰什么,可以在评论区告知,对您的告知表⽰感谢。[2] 在Windows 7(虚拟机)上运⾏该段代码 ,Windows照⽚查看器没能打开图⽚,提⽰图⽚不存在;第三⽅看图⼯具Picasa可以打开图⽚,具体原因不详。

2023年6月21日发(作者:)

Python常⽤模块之PIL(⼿册篇:Image模块)

Image模块图像模块提供了⼀个具有相同名称的类,⽤于表⽰⼀个PIL的图像。该模块还提供了许多功能,包括加载图⽚⽂件函数和创建新的图像函数。

模块⽰例:下⾯的程序加载⼀个图像,再旋转45度,并使⽤⼀个外部查看器(通常在Unix上的xv[1],在Windows上的看图程序[2])显⽰它。1 # 打开,旋转,展⽰⼀张图⽚(使⽤默认查看器)2 from PIL import Image3 im = ("")4 (45).show() 下⾯的程序将在当前⽬录中创建所有JPEG图像的缩略图(尺⼨:128 x128)。

1 # 创建缩略图 2 from PIL import Image 3 import glob, os 4

5 size = 128, 128 6

7 for infile in ("*.jpg"): 8 file, ext = xt(infile) 9 im = (infile)10 ail(size, IAS)11 (file + ".thumbnail", "JPEG")

模块函数:(mode, size) ⇒ (mode, size, color) ⇒ image使⽤给定模式(mode)和⼤⼩(size)创建⼀个新的图⽚。⼤⼩(size)使⽤的是(宽度、⾼度)⼆元组,并以像素为单位。对于单通道图像,颜⾊(color)使⽤单⼀值;对于多通道图像,颜⾊(color)使⽤多元组(每通道使⽤⼀个值)。1.1.4及之后版本中,您还可以使⽤颜⾊名称(有关详细信息,请参阅模块⽂档)如果省略颜⾊参数(color),图像使⽤零填充(这通常对应于⿊⾊)。如果颜⾊为空(None),图像不会进⾏初始化。如果你打算在⼀幅图像上粘贴或描绘⼀些东西,这可能是有⽤的。

1 from PIL import Image2 im = ("RGB", (512, 512), "white")

(file) ⇒ (file, mode) ⇒ image打开并识别给定的图像⽂件。这是⼀个便利的操作,函数读取⽂件头,但直到你尝试处理数据,实际图像数据才会从⽂件中读取(调⽤load⽅法可以强制加载)。如果模式参数(mode)要求赋值,它必须是“r”。你可以使⽤⼀个字符串(代表⽂件名)或⼀个⽂件对象作为⽂件参数(file)。在后⼀种情况下,⽂件对象必须实现read、seek,以及tell⽅法,并要求以⼆进制模式打开。

1 from PIL import Image2 im = ("")1 from PIL import Image2 from StringIO import StringIO3

4 # read data from string5 im = (StringIO(data))

(image1, image2, alpha) ⇒ image使⽤常数alpha,将给定的两张图像进⾏混合,创建⼀个新的图像。待混合的两张图像都必须有相同的⼤⼩和模式。    out = image1 * (1.0 - alpha) + image2 * alpha如果alpha为0.0,返回第⼀张图像image1的副本。如果alpha为1.0,返回第⼆个图像image2的⼀个副本。对alpha值没有限制。如果有必要,结果将被裁剪以适应允许输出范围。

ite(image1, image2, mask) ⇒ image

模块属性:图像类Image的实例有以下属性: ⇒ string or None源⽂件的⽂件格式。对库本⾝创建的图像(在现有图像上通过⼀个⼯⼚函数,或通过运⾏⽅法),这个属性设置为None。

⇒ string图像模式。这是⼀个字符串,指定图像所使⽤的像素格式。典型值有“1”、“L”、“RGB”或“CMYK”。取值完整列表请参阅。

⇒ (width, height)图像⼤⼩,以像素为单位。⼤⼩以⼆元组(width,height)表⽰。 e ⇒ palette or None如果调⾊板palette存在。如果模式mode为“P”,该值应该为ImagePalette类的⼀个实例。否则,它应该设置为None。

⇒ dictionary与图像相关的数据字典。⽂件处理程序将使⽤该字典,通过使⽤各种⾮图像信息读取该⽂件。有关详细信息,请参阅各种⽂件处理程序的⽂档。当返回新的图像时,⼤多数⽅法忽略该字典;因为关键字不是标准化的,⽅法是不可能知道操作是否影响了字典。以后如果你需要信息,保持⽅法返回的info字典的索引。

未完,待续...

注解:[1] 暂还不理解Unix上的xv表⽰什么?应该也是⼀个显⽰图像的⼯具。您要是知道表⽰什么,可以在评论区告知,对您的告知表⽰感谢。[2] 在Windows 7(虚拟机)上运⾏该段代码 ,Windows照⽚查看器没能打开图⽚,提⽰图⽚不存在;第三⽅看图⼯具Picasa可以打开图⽚,具体原因不详。