1

サーバーにjsonファイルを送信していて、サーバー側で解析が行われるという要件があります。json ファイルへのエントリを作成したので、imageview に保存されている画像を json ファイルへのエントリとして保存したいと考えています。以前の投稿をいくつか検索しましたが、何をすべきかを正確に見つけることができませんでした。サーバー経由で送信するために画像をjson形式で保存するには、任意のポインターが非常に役立ちます。

4

4 に答える 4

10

リクエストで送信する JSON オブジェクトに Image を含めたい場合は、Image を Base64 文字列に変換し、この文字列を JSON オブジェクトに入れます。

例えば:

String encodedImage = Base64.encodeToString(byteArrayImage, Base64.DEFAULT);

小切手:

于 2013-03-22T08:41:53.823 に答える
2

画像を base64 エンコードしてみてください (以下のように、Uri が画像です。ただし、注意してください: ImageView には ImageUri のゲッターがないため、自分で保存する必要があります!):

Uri uri = (Uri) extras.getParcelable(Intent.EXTRA_STREAM);

ContentResolver cr = getContentResolver();
InputStream is = cr.openInputStream(uri);

byte[] data = getBytesFromFile(is);

byte[] encoded_data = Base64.encodeBase64(data);
data_string = new String(encoded_data);

これで、JSON リクエストで送信できるbase64 でエンコードされた文字列data_stringができました。サーバー側では、文字列をデコードして画像を保存するだけです。

于 2013-03-22T08:40:26.800 に答える
1

これは実験的なものですが、ビットマップからバイト配列を作成し、そのバイト配列を使用して新しい文字列を作成し、それをサーバーに送信できます。

ただし、実験的な処理や解析を行わずに、POST リクエストを送信して画像を直接保存してみませんか?

于 2013-03-22T08:40:19.403 に答える