Android-加载透明PNG图片变黑的问题
2014-10-11 11:40
309 查看
png和jpg作为两种最常用的图片格式,首先我们要知道他们的区别:
1.从一般图片的外观上来说,他们是无法直接判断的
2.从文件大小上来说,同样一张图png肯定比jpg的大
3.通过查资料咱们可以发现,png即可移植网络图形格式,也是一种位图文件存储格式,可以进行无损压缩。而jpg是我们最常见的图片格式了,图片占用存储较少,但是也牺牲了图片质量。
总结为一句话是两者最大的区别是有损和无损。
而出现加载透明png图片变黑的问题,一般情况下这样的:
服务端的图片是透明png的无损图片,我们下载到本地的时候强制把它处理为了jpg的形式,造成图片质量有损。
jpg图片是没有背景透明这个概念的。
图片下载保存到本地SD卡的工具方法,可以使用如下代码:
1.从一般图片的外观上来说,他们是无法直接判断的
2.从文件大小上来说,同样一张图png肯定比jpg的大
3.通过查资料咱们可以发现,png即可移植网络图形格式,也是一种位图文件存储格式,可以进行无损压缩。而jpg是我们最常见的图片格式了,图片占用存储较少,但是也牺牲了图片质量。
总结为一句话是两者最大的区别是有损和无损。
而出现加载透明png图片变黑的问题,一般情况下这样的:
服务端的图片是透明png的无损图片,我们下载到本地的时候强制把它处理为了jpg的形式,造成图片质量有损。
jpg图片是没有背景透明这个概念的。
图片下载保存到本地SD卡的工具方法,可以使用如下代码:
/** * 将文件写到本地缓存 * @param fileName * @param in * @param length 总的文件长度 * @param callBack 下载回调接口 */ private static void writeToLocal(String fileName, InputStream in,int length,DownloadCallback callback) { if(in == null) { return; } FileOutputStream out = null; byte[] buffer = new byte[1024]; int len = -1; long count = 0; try { out = new FileOutputStream(fileName);// 为图片文件实例化输出流 while ((len = in.read(buffer)) != -1) { out.write(buffer, 0, len); count += len; if(callback != null) { callback.onDownload(length, count, false, false); } } if(callback != null) { callback.onDownload(length, count, true, false); } out.flush(); out.close(); in.close(); } catch (IOException e1) { e1.printStackTrace(); try { if (out != null) { out.close(); out = null; } in.close(); in = null; } catch (IOException e) { e.printStackTrace(); } // 网络出现异常,删除下载文件 new File(fileName).delete(); if(callback != null) { callback.onDownload(length, count, false, true); } } }
相关文章推荐
- Android PNG透明渐变背景图片失真问题
- 【C#/OpenGL】CSGL中2D纹理加载PNG等透明图片显示的黑边问题
- IE6下PNG图片透明问题
- jQuery插件解决IE6下PNG图片不透明的问题
- Android有效解决加载大图片时内存溢出的问题
- Android有效解决加载大图片时内存溢出的问题
- asp.net 文件路径问题,Png图片透明问题,js提示对象不支持属性和方法的解决方案
- 【转】CSS解决IE6下PNG图片背景不透明的问题
- 有效解决Android加载大图片时内存溢出的问题
- 解决png图片在IE6下的透明问题
- 解决IE6下png图片文件背景不透明的问题
- Android有效解决加载大图片时内存溢出的问题
- ie6处理png透明图片问题
- Android有效解决加载大图片时内存溢出问题
- 完美解决ie6不支持png 透明图片 和标签背景的问题
- CodeIgniter中PNG图片处理背景不透明问题的解决办法
- png透明问题解决方法(png图片ie6不兼容问题)
- jQuery解决IE6下PNG图片背景透明问题
- 【转】android有效解决加载大图片内存溢出的问题
- Android有效解决加载大图片时内存溢出的问题