Android PNG透明图片转JPG格式背景变黑
2016-07-22 18:21
423 查看
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();
}
}
来自为知笔记(Wiz)
在上传图片是,需要把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();
}
}
来自为知笔记(Wiz)
相关文章推荐
- Android中图片的处理(放大缩小,去色,转换格式,增加水印等)(转)
- Android基础知识---ContentProvider的基础知识
- Android 起调相机拍照剪裁内存优化
- Android全屏(包含3种隐藏顶部状态栏及标题栏和一种隐藏Android 4.0平板底部状态栏的方法)
- 非正式仿聊天界面
- android虚拟机接收短信的广播
- Android快速开发系列 10个常用工具类
- 从startActivity开始深入
- Android View,SurfaceView,GLSurfaceView的关系和区别
- android 给button 设置做图标注意
- android links
- Android zxing生成二维码
- android:windowSoftInputMode属性详解
- Android 'M' Doze
- Android适配
- android 新技术2016
- Android-自定义TextView ,打破常规默认TextView
- Android 记录和恢复ListView滚动的位置的三种方法
- Android-启动模式task-lunchmodle-intent flag
- Android屏幕的处理(横屏、竖屏、全屏等)