我打开一个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 BEFORE 保存图像,所以它就像那样:
setHasAlpha()
保存前:
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();
2 回答
您可以将其绘制到新的位图,例如
然后保存newBitmap
要保存图像并保留其透明区域,你无法保存它和JPG,你必须将其保存为PNG,不仅如此,而是将
setHasAlpha()
的设置设置为true BEFORE 保存图像,所以它就像那样:保存前:
保存时,使用您用于保存的任何方法将图像保存为PNG,例如: