17

画像にいくつかのメタデータを保存したい。私のカメラ アプリケーションは、ストレージ (MediaStore) デバイスに保存するビットマップを提供します。これに加えて、メタデータ内の写真にいくつかのタグを追加したいと考えています。EXIFはこれを行う良い方法だと思います。しかし、これを行う方法についての良い参考文献が見つかりませんでした。

Android プログラミングでこのタスクを実現するためのツールがあれば教えてください。

ありがとう

4

2 に答える 2

11

わかりました、誰か (オフライン) が役に立つリソースを教えてくれました。ExifInterface私が探していたもののように見えます。Android-erには、Android で EXIF メタデータを読み取る方法を示す投稿があり、書き込みもそれほど変わらないはずだと思います。

わかりませんが、EXIF を使用して任意のメタデータを書き込むことはできますか。ExifInterface ドキュメントで指定されているもの以外(緯度、経度、フラッシュなど)。そうでない場合、任意のメタデータを画像ファイルに書き込む好ましい方法は何ですか?

ありがとう

于 2010-07-14T13:21:53.687 に答える
9
public static void writeFile (File photo, double latitude, double longitude) throws IOException{
    ExifInterface exif = null;

    try{
        Log.v("latiDouble", ""+latitude);
        Log.v("longiDouble", ""+longitude);
        exif = new ExifInterface(photo.getCanonicalPath());
        if (exif != null) { 
            double latitu = latitude;
            double longitu = longitude;
            double alat = Math.abs(latitu);
            double along = Math.abs(longitu);
            String stringLati = convertDoubleIntoDegree(alat);
            String stringLongi = convertDoubleIntoDegree(along);
            exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, stringLati);
            exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, stringLongi);
            Log.v("latiString", ""+ stringLati);
            Log.v("longiString", ""+ stringLongi);
            exif.saveAttributes();
            String lati = exif.getAttribute (ExifInterface.TAG_GPS_LATITUDE);
            String longi = exif.getAttribute (ExifInterface.TAG_GPS_LONGITUDE);
            Log.v("latiResult", ""+ lati);
            Log.v("longiResult", ""+ longi);
        } 
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

私はここから答えをコピーしました

于 2014-11-09T19:04:51.413 に答える