4

このアプリはギャラリー ピック アクションを使用して、デバイスから画像を取得し、新しいブログ投稿にアップロードします。Moto Droid では、縦向きで撮影された画像が横向きでアプリに送り返されているため、画像が横向きになっていることがわかります。私の知る限り、これはドロイドでのみ発生します。

Google経由でこれを見つけましたが、フルサイズの画像を正しい向きでアップロードする必要があるため、ソリューションは機能しません:

http://groups.google.com/group/android-developers/browse_frm/thread/1246475fd4c3fdb6?pli=1

これを再現する簡単な方法は、Droid で縦向きの写真を撮り、それを Gmail 経由で自分自身に送信することです。メールメッセージでは、画像は横向き(横向き)になります。ドロイド 2.1 アップデートでテストしましたが、問題は解決していません。

詳細は次のとおりです。

フォトショップで画像情報をのぞき見したところ、次の行があります。

<tiff:Orientation>1</tiff:Orientation>

この仕様 ( http://www.awaresystems.be/imaging/tiff/tifftags/orientation.html ) では、1 の値は次のようになっています。

1 = 0 番目の行はイメージの視覚的な上部を表し、0 番目の列は視覚的な左側を表します。

この場合、それは間違っていませんか?私の場合、画像の上部が右側で、0 行目が左側で、tiff 方向の値は「5」である必要があります。

4

1 に答える 1

2

これは、EXIF タグを使用したサーバー コードのバグである可能性があると思います。私のDroid 2.1では、あなたが言及したようにポートレートモードで写真を撮り、保存された結果を調査しました(たとえば、自分に電子メールで送信されました)。プレビュー (Mac の場合) でファイルを開くと、正しく表示されます。

便利なexifツール ( port install exifMac の場合) を使用して、EXIF 情報を印刷できました。

$ exif -t Orientation image.jpg 
EXIF entry 'Orientation' (0x112, 'Orientation') exists in IFD '0':
Tag: 0x112 ('Orientation')
  Format: 3 ('Short')
  Components: 1
  Size: 2
  Value: right - top

ここで、サーバー/クライアント通信で発生している可能性のある EXIF 情報を消去した場合:

$ exif --ifd=0 --tag=Orientation --set-value= -o image2.jpg image.jpg 
Wrote file 'image2.jpg'.

$ exif -t Orientation image2.jpg 
EXIF entry 'Orientation' (0x112, 'Orientation') exists in IFD '0':
Tag: 0x112 ('Orientation')
  Format: 3 ('Short')
  Components: 1
  Size: 2
  Value: 

結果の画像は横向きモードになります。

要するに、Droid は画像内のビットを常に横向きに保存し、EXIF メタデータに依存して回転情報を保存していると思います (これは完全に有効です)。アプリはこの情報を破棄している可能性があります

それが役立つことを願っています! さらにトラブルシューティングを行うために、元の質問に自由にコメントまたは編集してください。

于 2010-04-05T23:55:06.943 に答える