android - sobre - que es un mapa bits en photoshop
Cómo cambiar el color de fondo de un mapa de bits transparente guardado (2)
Para guardar una imagen y conservar sus áreas transparentes, no puede guardarla en formato JPG, debe guardarla como PNG, y no solo eso, sino también establecer la configuración de setHasAlpha()
en true ANTES de guardar la imagen, por lo que sería como eso:
antes de guardar:
mBitmap.setHasAlpha(true);
Y cuando guarde, guarde la imagen como PNG utilizando el método que esté utilizando para guardar, por ejemplo:
File file = new File(folderDir, name);
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
FileOutputStream out = new FileOutputStream(file);
mBitmap.setHasAlpha(true);
mBitmap.compress(Bitmap.CompressFormat.PNG, 80, out);
out.flush();
out.close();
Abro una imagen png en un mapa de bits, le hago algunas modificaciones y luego la guardo en el disco como un jpg. En el caso de que el png tenga algunas áreas transparentes, se guardan en negro. ¿Hay alguna forma de cambiar este comportamiento predeterminado para que la imagen se guarde con un fondo de color diferente, como el blanco?
Gracias
Podría dibujarlo a un nuevo mapa de bits, por ejemplo,
Bitmap newBitmap = Bitmap.createBitmap(image.getWidth(), image.getHeight(), image.getConfig());
Canvas canvas = new Canvas(newBitmap);
canvas.drawColor(Color.WHITE);
canvas.drawBitmap(image, 0, 0, null);
luego guarda newBitmap en su lugar