修复缺少 IEND 块的损坏 PNG

修复缺少 IEND 块的损坏 PNG

我有一个将s.png转换为 s 的工具输出的文件,但是它不会将 IEND 块添加到末尾。.emf.png

因此,其他工具(例如 ImageMagick)不会接近它们,因为它们会检测到它们已损坏:

> pngcheck test.png
test.png  file doesn't end with an IEND chunk

但是,我可以.png在桌面 GUI 图像查看应用程序中打开它,所以我当前的解决方法是在这些应用程序(例如 Preview.app)中打开它并重新导出图像,然后使用正确的标题保存它,等等。

这显然是不可扩展的,我需要一些东西以自动化的方式在服务器端工作。

我该如何修复图像,最好使用可以自动化并在服务器端运行的方法,例如使用 Python?

是所讨论的图像。

答案1

使用 Python 成功实现此目的:

from PIL import Image
file_in = "test.png"

img = Image.open(file_in)

file_out = "test-fixed.png"

img.save(file_out)

需要 PIL/Pillowpip install Pillow

相关内容