ホームページ > Java > &#&チュートリアル > copyPixelsToBuffer を使用した後、Java ビットマップ バッファーがゼロでいっぱいになるのはなぜですか?

copyPixelsToBuffer を使用した後、Java ビットマップ バッファーがゼロでいっぱいになるのはなぜですか?

DDD
リリース: 2024-11-05 09:06:02
オリジナル
406 人が閲覧しました

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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート