1

Android用のsanselanライブラリを使用して、画像の回転データを適切に更新しようとしましたが、うまくいきません。ここにいる誰かがこれを機能させたのではないかと思っていました。私は一日中SOにいて、同様の質問への回答をチェックしていますが、まだ何も機能していないようです. Galaxy s3とmotorola razor mの両方で、何らかの理由で常に風景の回転が写真に埋め込まれています。カメラとすべてに割り当てるパラメーターで回転プロパティを設定しましたが、まだうまくいきません。Androidの画像のExifデータを手動で正常に更新した方法について、アイデア、リンク、または例はありますか?

4

1 に答える 1

2

Galaxy S3、Note2 などの一部のデバイスでは、回転した画像が表示されます。画像を正しく取得するには、以下の手順に従います。

  1. 方向のexif情報を使用してビットマップを回転させます
  2. 画像の exif 方向に適切な値を設定する

よく見ると、ステップ 2 で問題が発生します。exif の向きを更新しようとすると、Sanselan は向きの属性を複製します。したがって、まず方向の値を削除してから、値を追加する必要があります。私はこのように解決しました:

            List<?> sourceDirectories = outputSet.getDirectories();
            for (int i = 0; i < sourceDirectories.size(); i++) {
                TiffOutputDirectory sourceDirectory = (TiffOutputDirectory) sourceDirectories.get(i);

                List<?> sourceFields = sourceDirectory.getFields();
                for (int j = 0; j < sourceFields.size(); j++) {
                    TiffOutputField sourceField = (TiffOutputField) sourceFields.get(j);
                    if (sourceField.tagInfo.name.equals("Orientation")) {
                        sourceDirectory.removeField(sourceField.tagInfo);
                    }
                }
            }

            TiffOutputDirectory tiffDirectory = outputSet.getExifDirectory();
            TiffOutputField orientationField = TiffOutputField.create(TiffConstants.EXIF_TAG_ORIENTATION, outputSet.byteOrder, 1);
            tiffDirectory.add(orientationField);

この記事は、オリエンテーションの価値を高めるのに役立ちます

于 2013-02-06T08:19:58.910 に答える