Java:將點陣圖轉換為位元組數組
當嘗試使用提供的程式碼將點陣圖物件轉換為位元組數組時,使用者可能會遇到呼叫copyPixelsToBuffer() 後緩衝區中的所有位元組仍為0 的問題。儘管從相機返回的點陣圖是不變的,但它不應該影響複製過程。
潛在的根本原因:
程式碼片段使用 ByteBuffer 類別來分配記憶體並複製位圖的像素進入緩衝區。但是,它直接存取底層緩衝區而沒有正確設定其偏移量。這可能會導致 get() 方法僅傳回 0 個值。
解決方案:
要修正此問題,請考慮使用以下方法:
Bitmap bmp = intent.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
bmp.recycle();
點陣圖bmp =intent.getExtras().get(“資料” );
ByteArrayOutputStream 串流 = new ByteArrayOutputStream();
bmp.compress(Bitmap.compressFormat.PNG, 100, 流);
byte[] byteArray = Stream.toByteArray();
bmp.recycle();最後,toByteArray()方法將ByteArrayOutputStream的內容轉換為位元組陣列。
透過使用此方法,您可以有效地將Bitmap物件轉換為位元組數組,而無需遇到緩衝區下溢問題。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3