当前位置: 首页 > 编程笔记 >

Android png透明图片转jpg时背景变黑的解决方法

萧嘉禧
2023-03-14
本文向大家介绍Android png透明图片转jpg时背景变黑的解决方法,包括了Android png透明图片转jpg时背景变黑的解决方法的使用技巧和注意事项,需要的朋友参考一下

在做view保存图片后,压缩格式转为jpg的时候出现了黑色背景,其根本原因在于透明背景时背景的情况下,转换为jpg的时候会变成黑色背景,原因是PNG支持透明图而 JPG格式不支持透明背景。

我们的解决方案如下:

/**
 * 把bitmap,png格式的图片 转换成jpg图片
 * 因jpg不支持透明,如png透明图片,则转成白底!
 * @param bitmap 源图
 * @param newFilepath 新图片的路径
 */
public static void convertBitmap2Jpg(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();
  }
}

总结

以上所述是小编给大家介绍的Android png透明图片转jpg时背景变黑的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 本文向大家介绍php缩放gif和png图透明背景变成黑色的解决方法,包括了php缩放gif和png图透明背景变成黑色的解决方法的使用技巧和注意事项,需要的朋友参考一下 工作中需要缩放一些gif图然后在去Imagecopymerge,可是发现使用了imagecreatetruecolor和imagecopyresampled后发现背景图不对,本来透明的背景图变成了黑色,后来发现做一些修改才可以: 然

  • 本文向大家介绍IE6兼容透明背景图片及解决方案,包括了IE6兼容透明背景图片及解决方案的使用技巧和注意事项,需要的朋友参考一下 首先给大家展示效果图: JS代码:  //1、通过公共类 //2、直接用选择器:类名,ID,标签 html代码: css代码: ie6中的透明图片不是透明显示的解决方案 一些图片存在着浏览器的兼容性,本身是透明的图片在ie6中却是不透明,比如: 在ie6中的效果 正常显示

  • 我正在将PNG转换为JPG。透明背景默认变为黑色。我需要它是白色的。

  • 本文向大家介绍Android编程实现设置按钮背景透明与半透明及图片背景透明的方法,包括了Android编程实现设置按钮背景透明与半透明及图片背景透明的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程实现设置按钮背景透明与半透明及图片背景透明的方法。分享给大家供大家参考,具体如下: Button或者ImageButton的背景设为透明或者半透明: 半透明 透明 颜色和不

  • 我尝试将背景透明的tiff格式的图像转换为jpeg,以将其大小调整为200x200或1200x1200,但在转换时,背景变为黑色,我希望在转换后保持背景透明或白色 我的代码如下: 这在java JAI中是如何实现的?

  • 问题内容: 我使用PHP和GD库制作缩略图,但是我的代码将png透明度变成了纯黑色,是否有解决方案来改进我的代码? 这是我的PHP缩略图制作者代码: 谢谢 问题答案: 在imagecreatetruecolor()之后: