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