看板 AndroidDev 關於我們 聯絡資訊
我們想要把手機照相的圖片存成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
Killercat:我猜是byte->string因為會依照charset做解讀 08/24 09:34
Killercat:所以進出都要用同樣的charset(手邊沒電腦沒辦法測) 08/24 09:35
Killercat:不過到底是什麼原因要讓byte[]用string存? 08/24 09:36
Killercat:我沒記錯的話,java的spec有提過他對於"charset不支援的 08/24 09:37
Killercat:byte 會做出什麼行為沒定義" 而沒指定charset的話用的是 08/24 09:37
Killercat:default charset, 看看是不是這問題? 08/24 09:37