したがって、画像をWebサーバーに送信するには、画像をbase64にエンコードし、後でサーバー側でデコードする必要があります。
これは私がフォローしているものです。
しかし、次のコード行でOutOfMemoryExceptionが発生します。
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
そして、1MBの画像サイズ。それで、これを行う別の方法はありますか?
私はこれを読んだ:
MultipartEntityの使用をお勧めします。しかし、これらのライブラリはどこにありますか?リンクの1つが壊れているためです。
コード:
Uri selectedImageUri = data.getData();
String selectedImagePath = getPath(selectedImageUri);
try {
File imageFile = new File(selectedImagePath);
Bitmap bitmap = BitmapFactory.decodeFile(imageFile
.getAbsolutePath());
setImage.setImageBitmap(bitmap);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] b = baos.toByteArray();
base64code = Base64.encodeToString(b, Base64.DEFAULT);
} catch (Exception e) {
e.printStackTrace();
}
おそらく1つの方法は、品質を下げることかもしれません。しかし、20または30に設定し、画像がすでに低品質1(ローエンドデバイスから取得)である場合。画像の品質が悪くなる可能性があります。
サイズを確認し、それに応じて品質を下げるなどの操作を行います。私は良い考えではないと思います。
ありがとうございました