我有一组来自同一来源的 .jpg 图像,它们似乎都运行良好:我可以用 eog/Kolourpaint/GIMP 打开/编辑它们,它们的缩略图可以在 Nautilus 中正确加载,等等。
但是,当我尝试上传这些图像(例如通过 Web 浏览器上传到 Tumblr)时,其中一个(且只有一个)无法在 Nautilus 文件上传浏览器中预览,而当我尝试上传此文件时 Tumblr 返回错误。
哪些问题会导致原本表现良好的 jpeg 图像无法在 Nautilus 文件上传浏览器中预览?
答案1
这并不能直接回答你的问题,但处理“略微损坏”图像的方法是转换襟翼......
$ convert broken.jp cbroken.png
$ convert cbroken.png good.jpg
我发现图像处理工具对规范合规性的容忍度不同。根据我的经验,Convert 的容忍度和合规性都很高。
答案2
在 sthysel 的建议下,我将损坏的 jpeg 转换为 png,这样不仅问题显现出来,而且还为我提供了可以代替 jpeg 上传的功能性 png。
$ convert bad.jpg okay.png
convert: Premature end of JPEG file `bad.jpg' @ warning/jpeg.c/EmitMessage/228.
convert: Corrupt JPEG data: premature end of data segment `bad.jpg' @ warning/jpeg.c/EmitMessage/228.
查看 bad.jpg 的实际内容,它显然缺少 EOF 字节:
000d330: 8cbd e32f f164 95a4 4827 54e0 1264 8807 .../.d..H'T..d..
000d340: 8436 479f cd1e afa4 d9e3 0a .6G........
因此我用必要的字节填充了文件,这也有助于修复 jpeg。
000d330: 8cbd e32f f164 95a4 4827 54e0 1264 8807 .../.d..H'T..d..
000d340: 8436 479f cd1e afa4 d9e3 3fff d90a .6G.......?...
答案3
过去导致我出现兼容性问题的两件事是:
- 预览保存在 jpeg 中 - 禁用存储预览(如果软件支持)
- CMYK 图像另存为 jpeg - 保存前转换为 RGB 或将副本导出为 RGB