压缩透明png图像到jpg给出黑色背景 我想要白色背景而不是黑色
public static byte[] getBitMapBytes(Bitmap bmp, int quality) {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, quality, stream);
byte[] byteArray = stream.toByteArray();
return byteArray;
}
fos = new FileOutputStream(f);
fos.write(getBitMapBytes(compressedImage, 60));
答案 0 :(得分:1)
得到答案:
Bitmap newBitmap = Bitmap.createBitmap(image.getWidth(),
image.getHeight(), image.getConfig());
Canvas canvas = new Canvas(newBitmap);
canvas.drawColor(Color.WHITE);
Rect dest = new Rect(0, 0, image.width, image.height);
Rect src = new Rect(0, 0, image.width, image.height);
canvas.drawBitmap(bmp, src, dest, null);
答案 1 :(得分:0)
这是正常行为。 Jpeg没有管理透明度。
如果您只想减小图像的大小,可以使用这种lib: http://objectplanet.com/pngencoder/或在线https://tinypng.com/