2011-08-04 36 views
0

JPEG画像をアンドロイドでバイト配列に変換したいと思います。私は以下のコードを使用しています:JPEGからAndroidのバイト配列への画像変換

if (PhotoScreen.st_bitPicture != null) 
      { 

       ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
       boolean b = PhotoScreen.st_bitPicture.compress(CompressFormat.JPEG, 100, bos); 
       Log.w("test2", "BOOLEAN BOOLEAN BOOLEAN BOOLEAN :"+b); 
       m_base64EncodedImage = Base64.encodeToString(bos.toByteArray(), Base64.DEFAULT); 
      } 

しかし、画像を圧縮しています。画像を圧縮せずにどうすればいいですか?

答えて

0

「圧縮する」と言うと、「それをベース64に変換する」という意味ですか?あなたはすでにバイト配列を持っていて、それをベース64でエンコードします。希望する出力は何ですか?

PhotoScreen.st_bitPicture.compress(CompressFormat.JPEG, 100, bos); 

メモリ内のJPEG画像(JPEG圧縮済み)を作成します。

bos.toByteArray() 

JPEGデータでバイト配列を作成します。それはあなたが望むものです。あなたは(16進数に変換されたバイト配列の文字列のような)他の出力をしたい場合は、ベース64をしたくない場合は

Base64.encodeToString(bos.toByteArray(), Base64.DEFAULT); 

は、その後、それを行うだけで、そのステップを省略するベース64に、このデータをエンコード代わりに。

+0

それは別のピクセルサイズのサーバに向かいます。私が300 * 400でそれをとると、200 * 225に格納されます。 –

+0

'Bitmap.compress'はイメージのサイズを変更しません。それはビットマップを作成したときに起きたはずです。 – EboMike

関連する問題