Convertir Bitmap en la memoria a Bitmap con Bitmap.Config.RGB_565
Tengo un mapa de bits cargado que me gustaría convertir para configurar la configuración a Bitmap.Config.RGB_565
. ¿Hay una manera simple de convertir un Bitmap
de Bitmap
a esta configuración después de que el mapa de bits ya está cargado en la memoria? Por ejemplo, a continuación tengo un mapa de bits que se decodifica de los recursos de la aplicación, sin embargo, ¿cómo convertir un Bitmap
de Bitmap
ya cargado a RGB_565
? Estoy seguro de que es algo simple, sin embargo, soy bastante nuevo para trabajar con Bitmaps y después de unas horas de buscar en línea, por desgracia no pude encontrar lo que necesitaba específicamente.
BitmapFactory.Options options = new BitmapFactory.Options(); options.inPreferredConfig=Bitmap.Config.RGB_565 bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.myphoto ,options);
- Cómo cargar los recursos de imagen como RGB 565
- La imagen no se muestra completamente blanca a pesar de que está correctamente blanco
- Convertir de YUV a RGB en c + + (android-ndk)
- Cómo convertir RGB565 a YUV420SP más rápido en Android?
- Convertir la cámara Android api YUV_420_888 a RGB
- Experimento de curva gamma - convertir 2,2 a opuesto de 1,8?
- Convertir RGB a HSV en Android
- Cómo obtener valores RGB de mapa de bits en android
- Extraiga la imagen en blanco y negro del formato NV21 de la cámara de Android
- Por qué el mismo color se ve diferente en diferentes dispositivos Android
- Procesamiento de imágenes con Android Camera
- Cómo convertir una imagen en escala de grises?
- Cómo configurar el color rgb en Android?
No he probado esto, pero debería funcionar:
private Bitmap convert(Bitmap bitmap, Bitmap.Config config) { Bitmap convertedBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), config); Canvas canvas = new Canvas(convertedBitmap); Paint paint = new Paint(); paint.setColor(Color.BLACK); canvas.drawBitmap(bitmap, 0, 0, paint); return convertedBitmap; }
Llame a los métodos como este:
Bitmap convertedBitmap = convert(bitmap, Bitmap.Config.RGB_565);
Usted puede hacer todo tipo de transformaciones adicionales como rotación, estiramiento, etc, si utiliza el drawBitmap con una matriz.
También puede probar esto:
Bitmap converted = original.copy(Config.RGB_565, false);
De la documentación de Bitmap.copy ():
Intenta crear un nuevo mapa de bits basado en las dimensiones de este mapa de bits, estableciendo la configuración del nuevo mapa de bits en la especificada y copiando los píxeles de este mapa de bits en el nuevo mapa de bits. Si la conversión no es compatible, o el asignador falla, entonces esto devuelve NULL.
Buscando a través del código fuente nativo, debería convertirse bien entre los valores de Bitmap.Config .
Encontrado la respuesta aquí https://stackoverflow.com/a/12148450/1364673 , gracias a siliconeagle .
La solución es crear un nuevo mapa de bits con la codificación requerida según el ejemplo del enlace anterior.
- Arm-linux-androideabi-gcc no puede crear un ejecutable – compilar ffmpeg para dispositivos android armeabi
- No se puede cambiar el color del botón de radio en Android