cot*_*aws 18 transparency android bitmap
我打开一个png图像到一个位图,对它进行一些修改,然后将其作为jpg保存到磁盘.在png具有一些透明区域的情况下,它们被保存为黑色.有没有办法更改此默认行为,以便使用不同的颜色背景(如白色)保存图像?
谢谢
小智 50
您可以将其绘制到新的位图,例如
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);
Run Code Online (Sandbox Code Playgroud)
然后保存newBitmap
要保存图像并保留其透明区域,您不能将其保存为 JPG,您必须将其保存为 PNG,不仅如此,还要在保存图像之前将 的设置设置setHasAlpha()为 true ,所以它会是这样的:
保存前:
mBitmap.setHasAlpha(true);
Run Code Online (Sandbox Code Playgroud)
保存时,使用您用于保存的任何方法将图像保存为 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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20473 次 |
| 最近记录: |