何時間にもわたって調査し、さまざまなチュートリアルやヒントをくまなく調べた結果、選択肢がなくなり、質問を投稿することにしました。
私が見ているのは、ユーザーがフォト ギャラリーから画像を選択し、その画像をサーバーにアップロードすると、画像のサイズが大幅に縮小されることです。
ギャラリーから選択するときの標準的な動作は、フル画像ではなくサムネイル画像であるというヒントをどこかで見たのを覚えています。本当?ここに私の関連コードがあります:
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("image/*");
intent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri());
startActivityForResult(intent, PICK_FROM_FILE);
次に、作成したファイルを取得してこれを実行します (これは品質が低下している場所ですか??):
Bitmap bitmap = BitmapFactory.decodeStream(new FileInputStream(tempFile1));
次に、これを ByteArray に変換するロジックを次に示します。
Bitmap bmp = BitmapFactory.decodeFile(fileString);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte [] ba = stream.toByteArray();
これをさらに一歩進めて、画像をトリミングし、サイズを元のサイズに比例させたいと思います。たとえば、画像の元のサイズが 2000x2000 で、ユーザーが画像を垂直方向に半分にトリミングした場合、最終結果を 1000x1000 にしたいと考えています。洞察やヒントをいただければ幸いです。ありがとうございました。