![修复缺少 IEND 块的损坏 PNG](https://linux22.com/image/1516994/%E4%BF%AE%E5%A4%8D%E7%BC%BA%E5%B0%91%20IEND%20%E5%9D%97%E7%9A%84%E6%8D%9F%E5%9D%8F%20PNG.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