Pillow APNG序列
PNG 加载程序包括对读取和写入动画便携式网络图形 (APNG) 文件的有限支持。加载 APNG 文件时,get_format_mimetype()
将返回"image/apng"
。当n_frames
属性大于 1时,该is_animated
属性的值将是TRUE
。对于
APNG 文件,n_frames
属性取决于动画帧数以及默认图像的存在与否。有关详细信息,请参阅下面的 default_image
属性文档。它支持 seek()
和 tell()
方法。
im.seek()
提出一个 EOFError
如果你试图寻找最后一帧。
这些 info
在适用的情况下,将为APNG设置以下属性:
-
default_image
指定此APNG文件是否包含单独的默认图像,该图像不是实际APNG动画的一部分。
当APNG文件包含默认图像时,初始加载的图像(即 seek(0)
)将是默认图像。要说明默认图像的存在,则n_frames
属性将设置为 frame_count + 1
,其中 frame_count
是实际的APNG动画帧计数。要加载第一个APNG动画帧, seek(1)
必须被调用。
True
-APNG包含默认图像,它不是动画帧。
False
-APNG不包含默认图像。这个 n_frames 属性将设置为实际的APNG动画帧计数。最初加载的图像(即。 seek(0) )将是第一个APNG动画帧。 -
loop
循环此APNG的次数,0表示无限循环。 -
duration
显示此APNG帧的时间(毫秒)。
APNG 加载程序返回与 APNG 文件的逻辑屏幕大小相同大小的图像。在应用任何 APNG 帧处理和帧混合操作之后,返回的图像包含给定帧的像素数据(即它包含 Web 浏览器将为该帧渲染的内容 - 所有先前帧和该帧的合成)。
任何包含序列错误的 APNG 文件都被视为无效图像。APNG 加载程序不会尝试修复和重新排序包含序列错误的文件。
保存
当调用save()
时,默认情况下只会保存单帧 PNG 文件。保存APNG文件(包括单帧APNG),save_all
参数必须设置为True
。还可以设置以下参数:
-
default_image
布尔值,指定基础图像是否为默认图像。如果True
,则基本图像将用作默认图像,append_images
序列中的第一个图像将是第一个 APNG 动画帧。如果False
,则基础图像将用作第一个 APNG 动画帧。默认为False
。 -
append_images
作为附加帧附加的图像的列表或元组。列表中的每个图像可以是单帧或多帧图像。每个帧的大小应该与基本图像的大小相匹配。另外请注意,如果帧的模式与基础图像的模式不匹配,则该帧将转换为基本图像模式。 -
loop
循环此APNG的整数次,0表示无限循环。默认为0。 -
duration
整数(或整数的列表或元组)显示此APNG帧的时间长度(毫秒)。默认为0。 -
disposal
一个整数(或整数的列表或元组),指定在呈现下一帧之前要用于此帧的APNG处理操作。默认为0。
0 (APNG_DISPOSE_OP_NONE
,默认)-在渲染下一帧之前,不会对该帧执行任何处理
1 (PIL.PngImagePlugin.APNG_DISPOSE_OP_BACKGROUND
)-在渲染下一帧之前,此帧的修改区域被清除为完全透明的黑色。
2 (APNG_DISPOSE_OP_PREVIOUS
)-在呈现下一帧之前,此帧的修改区域将恢复为上一帧的内容。 -
blend
一个整数(或整数的列表或元组),指定要在呈现下一帧之前用于此帧的APNG混合操作。默认为0。
0 (APNG_BLEND_OP_SOURCE
)-此帧的所有颜色分量(包括alpha)覆盖先前输出的图像内容。
1 (APNG_BLEND_OP_OVER
)-此帧应与以前的输出图像内容进行alpha合成。
这个
duration
, disposal
和 blend
参数可以设置为列表或元组,以指定动画中每个帧的值。列表或元组的长度必须与APNG动画中实际帧的总数相同。如果APNG包含默认图像(即。 default_image
设置为 True
),这些列表或元组参数不应包含默认图像的条目。
更多建议: