[問題] 寫bitmap轉成byte[]再轉成string

看板AndroidDev作者 (zachery)時間13年前 (2011/08/22 23:15), 編輯推噓0(006)
留言6則, 1人參與, 最新討論串1/1
我們想要把手機照相的圖片存成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

08/24 09:34, , 1F
我猜是byte->string因為會依照charset做解讀
08/24 09:34, 1F

08/24 09:35, , 2F
所以進出都要用同樣的charset(手邊沒電腦沒辦法測)
08/24 09:35, 2F

08/24 09:36, , 3F
不過到底是什麼原因要讓byte[]用string存?
08/24 09:36, 3F

08/24 09:37, , 4F
我沒記錯的話,java的spec有提過他對於"charset不支援的
08/24 09:37, 4F

08/24 09:37, , 5F
byte 會做出什麼行為沒定義" 而沒指定charset的話用的是
08/24 09:37, 5F

08/24 09:37, , 6F
default charset, 看看是不是這問題?
08/24 09:37, 6F
文章代碼(AID): #1EKd9qIr (AndroidDev)
文章代碼(AID): #1EKd9qIr (AndroidDev)