Java: conversión de mapa de bits en matriz de bytes
Al intentar convertir un objeto de mapa de bits en una matriz de bytes utilizando el código proporcionado, los usuarios pueden encontrar un problema donde todos los bytes en el búfer permanecen en 0 después de llamar a copyPixelsToBuffer(). A pesar de la inmutabilidad del mapa de bits devuelto por la cámara, no debería afectar el proceso de copia.
Posible causa raíz:
El fragmento de código utiliza la clase ByteBuffer para asignar memoria y copiar el mapa de bits. píxeles en el búfer. Sin embargo, accede directamente a un búfer subyacente sin configurar su desplazamiento correctamente. Esto puede provocar que el método get() devuelva solo 0 valores.
Solución:
Para rectificar este problema, considere utilizar el siguiente enfoque:
Bitmap bmp = intent.getExtras().get("data");
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
bmp.recycle();
En este código mejorado:
Al utilizar este enfoque, puede convertir de manera efectiva un objeto Bitmap en una matriz de bytes sin Encontrando el problema de desbordamiento del búfer.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3