处理apng文件的python模块。
apng的Python项目详细描述
处理apng文件的python模块。
功能
- 将多个图像合并到一个APNG文件中。(它使用枕头将图像转换为PNG格式)
- 读取apng文件并将每个帧提取到png文件中。
- 它不做任何优化,只对图像进行浓缩。这在将来可能会改变。
依赖关系
- Pillow-可选。您仍然可以使用不带pil的pyapng,但它只能读取png文件。
开发依赖性
- pngcheck
- 有关其他开发依赖项,请参见Requirements.txt。
用法
将一系列图像转换为APNG动画:
fromapngimportAPNGAPNG.from_files(["1.jpg","2.jpg","3.jpg"],delay=100).save("result.png")
使用不同的延迟:
fromapngimportAPNGfiles=[("1.jpg",100),("2.jpg",200),("3.jpg",300)]im=APNG()forfile,delayinfiles:im.append_file(file,delay=delay)im.save("result.png")
从APNG文件中提取帧:
fromapngimportAPNGim=APNG.open("animation.png")fori,(png,control)inenumerate(im.frames):png.save("{i}.png".format(i=i))
将文本块添加到PNG文件:
fromapngimportPNG,make_text_chunkim=PNG.open("image.png")im.chunks.append(make_text_chunk(key="Comment",value="Some text"))im.save("image.png")
性能
如果要将一些大的jpg转换为动画,库必须将jpg转换为png,然后将它们合并为单个动画apng文件。问题是:
- 非常慢。
- APNG的文件大小非常大。可能是原作的5倍或更多。
在这种情况下,我建议尝试一种叫做“UGIRAA”的动画格式,这是由Pixv.NET实现的。还有一个名为“HoneyView”的图像查看器,可以在本地查看它。
待办事项
- 添加优化器?
更改日志
- 0.3.3(2019年2月11日)
- 修复:无法提取包含多个fdAT块的帧。
- 0.3.2(2018年7月20日)
- 添加:make_text_chunk函数。
- 添加:Chunk数据类。
- 更改:现在parse_chunks产生Chunk,而不是元组。这应该是安全的,因为Chunk是一个namedtuple。
- 0.3.1(2018年5月13日)
- 附加:万向轮。
- 0.3.0(2018年5月13日)
- 支持Python2。
- 添加:png方法open_any,from_bytes。
- 添加:apng方法append_file,from_bytes。
- 添加:模块函数parse_chunks。
- drop:module函数“是png”和“chunks”。
- change:`png.open`现在只读取png图像。若要读取非PNG图像,请使用“png.open_any”。
- change:`apng.append`现在只接受'png'实例。若要附加PNG文件,请使用“apng.append_file”。
- 0.2.1(2018年4月19日)
- 附加:支持num_plays。(#4)
- 0.2.0(2017年12月8日)
- 0.1.0(2016年5月30日)
- 第一次释放。