stra.getBytes("UTF-8") 將字串編碼為 UTF-8 位元組,**並非**圖片檔案的二進位內容(JPEG/PNG/WEBP 標頭)。BitmapFactory 只能解碼標準圖片格式的位元組流。
若伺服器回傳 Base64 字串:
String base64 = d.getResult().getImage(); // 假設為 Base64
byte[] decoded = Base64.decode(base64, Base64.DEFAULT);
Bitmap bitmap = BitmapFactory.decodeByteArray(decoded, 0, decoded.length);
imageView.setImageBitmap(bitmap);
YuvImage yuv = new YuvImage(data, ImageFormat.NV21, width, height, null);
ByteArrayOutputStream out = new ByteArrayOutputStream();
yuv.compressToJpeg(new Rect(0, 0, width, height), 80, out);
byte[] jpeg = out.toByteArray();
Bitmap bmp = BitmapFactory.decodeByteArray(jpeg, 0, jpeg.length);
data.length 與前 16 位元組 Arrays.toString(Arrays.copyOf(data, 16)),確認是否為 FF D8 FF (JPEG) 或 89 50 4E 47 (PNG)。BitmapFactory。BitmapFactory.Options.inSampleSize 避免 OOM。