如何更改已保存透明位图的背景颜色

我打开一个png图像到一个位图,对它进行一些修改,然后将其作为jpg保存到磁盘。 在png具有一些透明区域的情况下,它们被保存为黑色。 有没有办法更改此默认行为,以便使用不同的颜色背景(如白色)保存图像?

谢谢

您可以将其绘制到新的位图,例如

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); 

然后保存newBitmap

要保存图像并保留其透明区域,您无法保存它和JPG,您必须将其保存为PNG,不仅如此,而是保存图像之前setHasAlpha()的设置设置为true,因此它将是像那样:

保存前:

 mBitmap.setHasAlpha(true); 

保存时,使用您用于保存的任何方法将图像保存为PNG,例如:

 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();