我将png图像打开到Bitmap中,对其进行一些修改,然后将其作为jpg保存到磁盘。在png具有一些透明区域的情况下,它们被保存为黑色。有没有办法更改此默认行为,以便使用不同的颜色背景(如白色)保存图像?
由于
答案 0 :(得分:45)
您可以将其绘制到新的位图,例如
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
答案 1 :(得分:0)
要保存图像并保留其透明区域,您无法将其保存为JPG,您必须将其保存为PNG,不仅如此,还要将setHasAlpha()
的设置设置为true BEFORE 保存图片,所以就像那样:
:
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();