特定 jpeg 图像无法在 Nautilus 中预览,因此无法上传

特定 jpeg 图像无法在 Nautilus 中预览,因此无法上传

我有一组来自同一来源的 .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

相关内容