Java 비트맵을 바이트 배열로: 버퍼 문제 해결
Java 비트맵을 바이트 배열로 변환하려고 할 때 일부 사용자는 다음과 같은 문제가 발생합니다. copyPixelsToBuffer 메서드를 사용하여 픽셀을 복사한 후 버퍼에 0만 포함되는 특이한 문제가 있습니다. 카메라에서 반환된 비트맵의 불변성에도 불구하고 이 예상치 못한 결과는 코드의 정확성에 대한 우려를 불러일으킵니다.
이 문제를 해결하려면 대체 접근 방식을 사용하는 것이 좋습니다.
<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)으로 압축합니다. 이 프로세스는 비트맵의 데이터를 포함하는 바이트 배열을 생성합니다. 또한 코드는 메모리 누수를 방지하기 위해 재활용 메서드를 호출하여 비트맵의 리소스를 해제합니다.
위 내용은 copyPixelsToBuffer를 사용한 후 Java 비트맵 버퍼가 0으로 채워지는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!