首頁 > Java > java教程 > 主體

為什麼使用 copyPixelsToBuffer 後我的 Java 位圖緩衝區填入零?

DDD
發布: 2024-11-05 09:06:02
原創
309 人瀏覽過

Why is my Java bitmap buffer filled with zeros after using copyPixelsToBuffer?

Java 位圖到位元組數組:解決緩衝區問題

在嘗試將Java 位圖轉換為位元組數組時,一些使用者遇到了使用copyPixelsToBuffer 方法複製像素後,緩衝區僅包含零的特殊問題。儘管相機返回的點陣圖是不變的,但這種意外結果引起了人們對程式碼準確性的擔憂。

要解決此問題,請考慮採用替代方法:

<code class="java">Bitmap bmp = intent.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
bmp.recycle();</code>
登入後複製

在此修訂後的程式碼中,我們沒有將像素直接複製到緩衝區,而是使用ByteArrayOutputStream 將位元圖壓縮為PNG 格式(品質等級為100)。此過程產生一個包含點陣圖資料的位元組數組。另外,程式碼透過呼叫recycle方法釋放點陣圖資源,防止記憶體洩漏。

以上是為什麼使用 copyPixelsToBuffer 後我的 Java 位圖緩衝區填入零?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!