良い友達。
数か月間、imageViewに保存した画像をシリアル化する方法を探しています。
この画像はカメラによって撮影され、ImageViewを開始しますが、質問のようなものはシリアル化してテキスト文字列に渡す必要があります。
私はグーグルとフォーラムで高低を検索しましたが、誰も答えを見つけられませんでした。
誰かが私ができる方法のいくつかの方法を知っていますか?
良い友達。
数か月間、imageViewに保存した画像をシリアル化する方法を探しています。
この画像はカメラによって撮影され、ImageViewを開始しますが、質問のようなものはシリアル化してテキスト文字列に渡す必要があります。
私はグーグルとフォーラムで高低を検索しましたが、誰も答えを見つけられませんでした。
誰かが私ができる方法のいくつかの方法を知っていますか?
バイナリ データをテキストとして安全に移動したい場合は、バイナリ データを Base64 でエンコードできます。Base64 utils を含まない Android API を使用している場合は、次を参照してください: How to use Base64 (included in android since api 8 (2.2)) in a android project api 3 (android 1.5)?
バイナリ データが Base64 でエンコードされると、「プレーンな」ASCII テキストのみを想定しているシステムを安全に通過できます。
ビットマップ データは圧縮されていないため、Base64 でエンコードすると大量のテキストが生成されることに注意してください (Base64 エンコードでは、データを表すために必要なバイト数が 1/3 増加します)。これを軽減するにはBitmap
、Base64 でエンコードする前に、次のような方法で画像データを圧縮する必要があります。
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream(8192);
bitmap.compress(CompressFormat.JPEG, COMPRESSION_AMOUNT, baos);
byte[] compressedBytes = baos.toByteArray();
}
必要なサイズと品質のトレードオフに応じて、COMPRESSION_AMOUNT を 50 ~ 80 の値に設定します。
データを受信するクライアントは、最初に Base64 でエンコードを解除し、次に結果のバイトを JPEG データとして解析して画像を再作成する必要があります。