特定の jpeg 画像は Nautilus でプレビューされず、アップロードできません

特定の jpeg 画像は Nautilus でプレビューされず、アップロードできません

同じソースからの .jpg 画像のグループがあり、それらはすべて正常に動作するようです。eog/Kolourpaint/GIMP で開いたり編集したりでき、サムネイルは Nautilus で正しく読み込まれます。

ただし、これらの画像を(たとえば Web ブラウザー経由で Tumblr に)アップロードしようとすると、そのうちの 1 つ(1 つだけ)が 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

過去に互換性の問題を引き起こしたことのある 2 つのことは次のとおりです。

  • プレビューは JPEG 形式で保存されます - プレビューの保存を無効にします (ソフトウェアでサポートされている場合)
  • CMYK 画像は jpeg として保存されます - 保存する前に RGB に変換するか、コピーを RGB としてエクスポートします

関連情報