Pillow JPEG格式
Pillow 可以读取包含L,RGB或 CMYK数据的JPEG,JFIF和Adobe JPEG文件。它编写标准和渐进式 JFIF 文件。
使用 draft() 方法,您可以通过转换 RGB 图像到 L ,并在加载图像时将其大小调整为原始尺寸的1/2、1/4或1/8。
默认情况下,Pillow不允许加载截断的JPEG文件,可以设置 ImageFile.LOAD_TRUNCATED_IMAGES 来覆盖他。
如果可用,该open()方法可以设置以下 info 属性:
-
jfif 找到JFIF应用程序标记。如果文件不是JFIF文件,则此值不存在。 -
jfif_version表示JFIF版本(主版本、次版本)的元组。 -
jfif_density 表示图像像素密度的元组,单位由jfif_unit指定 jfif_unit jfif_密度的单位:
0 - 无单位
1 - 每英寸像素
2 - 每厘米像素
-
dpi一个元组,表示报告的像素密度(以每英寸像素为单位),如果文件是JFIF文件,单位为英寸。 -
adobe 找到Adobe应用程序标记。如果文件不是Adobe JPEG文件,则该值不存在。 -
adobe_transform 供应商特定标签。 -
progression 表示这是一个渐进式JPEG文件。 -
icc_profile 图像的ICC颜色配置文件。 -
exif 来自图像的原始exif数据。 -
comment 关于图像的评论。
7.1.0 新版功能.
这个 save() 方法支持以下选项:
-
quality 图像质量,范围从0(最差)到95(最佳)。默认值为75。应避免大于95的值;100禁用部分JPEG压缩算法,并导致大文件几乎没有任何图像质量增益。 -
optimize 如果存在且为真,则表示编码器应额外传递图像以选择最佳编码器设置。 -
progressive 如果存在且为真,则表示此图像应存储为渐进式jpeg文件。 -
dpi表示像素密度的整数元组, (x,y) 。 -
icc_profile 如果存在且为真,图像将与提供的ICC配置文件一起存储。如果未提供此参数,则保存图像时不会附加配置文件。要保留现有配置文件,请执行以下操作:
im.save(filename, 'jpeg', icc_profile=im.info.get('icc_profile'))
-
exif 如果存在,图像将与提供的原始exif数据一起存储。 -
subsampling 如果存在,设置编码器的子采样。 -
keep:仅对jpeg文件有效,将保留原始图像设置。 -
4:4:4,4:2:2 , 4:2:0 :特定采样值 -
-1: 相当于 keep -
0: 相当于 4:4:4 -
1: 相当于 4:2:2 -
2: 相当于 4:2:0 -
qtables 如果存在,设置编码器的qtables。这被列为jpeg文档中向导的高级选项。小心使用。 qtables可以是以下几种值之一: - 用于命名预设的字符串,例如
keep, web_low或 web_high - 64个整数列表的列表、元组或字典(integer keys = range(len(keys)))。必须有2到4张表。
2.5.0 新版功能.
要启用jpeg支持,您需要在构建python图像库之前构建和安装ijg jpeg库。有关详细信息,请参阅分发自述文件。