How to change the background color of a saved transparent bitmap
To save an image and retain its transparent areas you can't save it as JPG, you have to save it as PNG, and not only that, but setting the setting of setHasAlpha()
to true BEFORE saving the image, so it would be like that:
before saving:
mBitmap.setHasAlpha(true);
And when saving, save the image as PNG using whatever the method you are using for saving, for example:
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();
You could draw it to a new bitmap, e.g.
Bitmap newBitmap = Bitmap.createBitmap(image.getWidth(),
image.getHeight(), image.getConfig());
Canvas canvas = new Canvas(newBitmap);
canvas.drawColor(Color.WHITE);
canvas.drawBitmap(image, 0F, 0F, null);
then save new bitmap instead