Android PNG透明圖片轉JPG格式背景變黑
在上傳圖片是,需要把PNG格式轉換成JPG格式的,但是在遇上透明背景時,轉過來就變成黑色底圖了!
原因是PNG支持透明圖而 JPG格式不支持透明底!
/**
* 把bitmap,png格式的圖片 轉換成jpg圖片
* 因jpg不支持透明,如png透明圖片,則轉成白底!
* @param bitmap 源圖
* @param newFilepath 新圖片的路徑
*/
public static void saveJPG_After(Bitmap bitmap, String newImgpath) {
//復制Bitmap 因為png可以為透明,jpg不支持透明,把透明底明變成白色
//主要是先創建一張白色圖片,然后把原來的繪制至上去
Bitmap outB=bitmap.copy(Bitmap.Config.ARGB_8888,true);
Canvas canvas=new Canvas(outB);
canvas.drawColor(Color.WHITE);
canvas.drawBitmap(bitmap, 0, 0, null);
File file = new File(newImgpath);
try {
FileOutputStream out = new FileOutputStream(file);
if (outB.compress(Bitmap.CompressFormat.JPEG, 100, out)) {
out.flush();
out.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}