作者zachery1221 (zachery)
看板AndroidDev
標題[問題] 寫bitmap轉成byte[]再轉成string
時間Mon Aug 22 23:14:57 2011
我們想要把手機照相的圖片存成bitmap
if(resultCode == RESULT_OK){
Bundle extras = intent.getExtras();
Bitmap bmp = (Bitmap)extras.get("data");
imv = (ImageView)findViewById(R.id.ReturnedImageView);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] b = baos.toByteArray();
String a = new String(b);
byte[] c = a.getBytes();
Bitmap bmpOK = BitmapFactory.decodeByteArray(c, 0, c.length);
imv.setImageBitmap(bmpOK);
}
想要測試看看轉回去Bitmap對不對(用bmpOK來看)
但是 Bitmap bmpOK = BitmapFactory.decodeByteArray(c, 0, c.length);
圖片跑步出來
但如果換成 Bitmap bmpOK = BitmapFactory.decodeByteArray(b, 0, b
.length);
就可以
想請問是用法有錯還是byte to string的方法不對呢
麻煩大家幫我看看 謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.122.54
1F:→ Killercat:我猜是byte->string因為會依照charset做解讀 08/24 09:34
2F:→ Killercat:所以進出都要用同樣的charset(手邊沒電腦沒辦法測) 08/24 09:35
3F:→ Killercat:不過到底是什麼原因要讓byte[]用string存? 08/24 09:36
4F:→ Killercat:我沒記錯的話,java的spec有提過他對於"charset不支援的 08/24 09:37
5F:→ Killercat:byte 會做出什麼行為沒定義" 而沒指定charset的話用的是 08/24 09:37
6F:→ Killercat:default charset, 看看是不是這問題? 08/24 09:37