android.media.ExifInterfaceでメタデータを読み取るBitmap.compress
介して画像を圧縮してから戻ってメタデータを保存することも可能である。
String filename = "yourfile.jpg";
// this reads all meta data
ExifInterface exif = new ExifInterface(filename);
// read and compress file
Bitmap bitmap = BitmapFactory.decodeFile(filename);
FileOutputStream fos = new FileOutputStream(filename);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fos);
fos.close();
// write meta data back
exif.saveAttributes();
私はそれをテストしていないが、source code of ExifInterfaceを見て、それが動作する可能性があり。 実装の詳細を頼りにしたくない場合は、もちろんすべての属性をループしてコピーすることができます。
もう1つの解決策は、
Android Exif Extendedライブラリを使用することです。 exifデータを読み書きする小さなプロジェクトです。
リサイズでは、画像をリサンプリングして解像度を変更することを意味しますか?もしそうなら、AFAIKは、そのための唯一のものは、あなたの質問に引用しているものです。 – CommonsWare
はい、解像度を変更してください。私が探しているものを説明するサンプルコマンドを追加しました。 –
私が見逃してしまったSDKには何かが潜んでいない限り、サードパーティライブラリを使用するか、[EXIFヘッダーを自分で処理する]オプションがあります(https://commonsware.com/blog/2016/05/31 /tale-two-exifinterfaces.html)を 'BitmapFactory' /' Bitmap'と組み合わせて使用します。 – CommonsWare