压缩透明png图像到jpg给黑色背景java

时间:2018-03-29 11:56:37

标签: java android image

压缩透明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));

2 个答案:

答案 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/