0

したがって、画像をWebサーバーに送信するには、画像をbase64にエンコードし、後でサーバー側でデコードする必要があります。

これは私がフォローしているものです。

しかし、次のコード行でOutOfMemoryExceptionが発生します。

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

そして、1MBの画像サイズ。それで、これを行う別の方法はありますか?

私はこれを読んだ:

HttpPostを使用して画像を送信する

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(ローエンドデバイスから取得)である場合。画像の品質が悪くなる可能性があります。

サイズを確認し、それに応じて品質を下げるなどの操作を行います。私は良い考えではないと思います。

ありがとうございました

4

1 に答える 1

1

MultipartEntity を使用してサーバーに画像をアップロードすることは、適切なオプションの 1 つです。

MultipartEntity ライブラリのダウンロード :

apache-mime4j-0.6.jar

httpmime-4.0.1.jar

お役に立てば幸いです。

ありがとう。

于 2012-12-15T07:21:21.010 に答える