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

 更新时间:2017年12月25日 16:46:23   作者:康熙微博私访记  
这篇文章主要介绍了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时背景变黑的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Fragment跳转时传递参数及结果回传的方法(推荐)

    Fragment跳转时传递参数及结果回传的方法(推荐)

    今天总结一下Fragment间的参数传递及结果返回的方法,非常不错,具有参考借鉴价值,需要的朋友参考下
    2017-01-01
  • Android Hilt的使用以及遇到的问题

    Android Hilt的使用以及遇到的问题

    这篇文章主要介绍了Android Hilt的使用以及遇到的问题,帮助大家更好的理解和学习使用Android开发,感兴趣的朋友可以了解下
    2021-04-04
  • Android Studio 3.0 新功能全面解析和旧项目适配问题

    Android Studio 3.0 新功能全面解析和旧项目适配问题

    Android Studio是Android的官方IDE。接下来通过本文给大家分享Android Studio 3.0 新功能全面解析和旧项目适配问题,需要的朋友可以参考下
    2017-11-11
  • Android EditText长按菜单中分享功能的隐藏方法

    Android EditText长按菜单中分享功能的隐藏方法

    Android EditText控件是经常使用的控件,下面这篇文章主要给大家介绍了关于Android中EditText长按菜单中分享功能的隐藏方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • Android使用Room操作数据库流程详解

    Android使用Room操作数据库流程详解

    谷歌推荐使用Room操作数据库,Room在 SQLite 上提供了一个抽象层,在充分利用 SQLite强大功能的同时,能够流畅地访问数据库
    2022-11-11
  • 基于Android的英文词典的实现方法

    基于Android的英文词典的实现方法

    这篇文章主要为大家详细介绍了基于Android的英文词典的实现方法
    2016-05-05
  • 解决Android Studio 格式化快捷键和QQ 锁键盘快捷键冲突问题

    解决Android Studio 格式化快捷键和QQ 锁键盘快捷键冲突问题

    每次打开qq使用android studio格式化的快捷键Ctrl + Alt +L时,总是出现qq锁键盘提示,怎么回事呢?下面小编给大家带来了android studio格式化的快捷键和qq快捷键之间的冲突的处理方法,需要的朋友参考下吧
    2017-12-12
  • Android LayerDrawable使用实例

    Android LayerDrawable使用实例

    这篇文章主要介绍了Android LayerDrawable使用实例,本文讲解了LayerDrawable的作用、LayerDrawable的原理、LayerDrawableLayerDrawable的使用实例等,需要的朋友可以参考下
    2015-06-06
  • Android自定义View实现数字雨效果的全过程

    Android自定义View实现数字雨效果的全过程

    小时候看时印象最深的就是数字雨了,导致我现在写代码也要是黑屏,下面这篇文章主要给大家介绍了关于Android自定义View实现数字雨效果的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • Android主项目与Module中R类的区别详解

    Android主项目与Module中R类的区别详解

    这篇文章主要给大家介绍了关于Android主项目与Module中R类的区别的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-02-02

最新评论