图片压缩保存
来源:互联网 发布:mysql解压包怎么安装 编辑:程序博客网 时间:2024/05/31 19:34
因为图片存储特性,当前内存读取Byte构造的Bitmap如不存储则只能使用一次。因为图片大小缩放是图片自生属性操作。图片质量变化,属于动态像素模糊。所以图片质量缩放对应的内存输出流不能保留。则在存储压缩图片的时候,需要再次进行质量压缩。
第一:我们先看一下文件命名:
private static char HEX_DIGITS[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; private static String toHexString(byte[] b) { StringBuilder sb = new StringBuilder(b.length * 2); for (int i = 0; i < b.length; i++) { sb.append(HEX_DIGITS[(b[i] & 0xf0) >>> 4]); sb.append(HEX_DIGITS[b[i] & 0x0f]); } return sb.toString(); }
第二:我们来压缩保存图片:/** 保存图片到本地路径 */ public String saveFile(Bitmap image, int limitKB) { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFormat.JPEG, 100, baos); int options = 100; while (baos.size() / 1024 > limitKB) { baos.reset(); image.compress(Bitmap.CompressFormat.JPEG, options, baos); options -= 10; } byte[] tempBytes = baos.toByteArray(); MessageDigest md5 = MessageDigest.getInstance("MD5"); // md5图片获得md5码 md5.update(tempBytes); String imageMd5 = toHexString(md5.digest()).toLowerCase(); ByteArrayOutputStream arrayOutputStream = null; String imageRoot = FilePathUtils.getUserEditPath(); String filename = imageRoot + imageMd5 + ".jpg"; FileOutputStream outputStream = new FileOutputStream(new File(filename)); arrayOutputStream = new ByteArrayOutputStream(); arrayOutputStream.write(tempBytes); arrayOutputStream.writeTo(outputStream); return filename; } catch (Exception e) { e.printStackTrace(); } return null; }
0 0
- 压缩图片,保存图片
- IOS 图片压缩保存
- 图片压缩保存
- 上传图片进行压缩保存
- 图片压缩保存读取操作
- 图片按比例缩小,并压缩保存
- android图片压缩处理,并保存
- Android拍照压缩裁剪并保存图片
- 图片异步压缩保存到本地文件PhotoCompress
- iOS 中图片的压缩以及保存
- androidr图片压缩和保存本地
- Android笔记-->本地图片压缩保存
- 图片的终极压缩和保存
- Android开发 压缩保存图片至本地
- 图片旋转,压缩,保存,拷贝+dp2px
- 获取不经过压缩的图片,本地保存压缩
- C# 保存图片时压缩(压缩要保存的图片)
- Android图片压缩(质量压缩和尺寸压缩)、图片保存(本地和sqlite数据库)
- 浏览器内嵌显示pdf文档
- Git教程(笔记)
- scp文件到远端机器问题总结及解决方法
- android wifiNative到linux内核的通信框架
- 理解 C 语言中的复杂声明
- 图片压缩保存
- UGUI深度学习
- oracle11g新建用户,表空间,导入数据记录
- 用于验证码图片识别的类续(C#代码)
- 4-7 统计某类完全平方数 (20分)
- Caffe深度学习框架作者贾扬清online内容分享III
- iOS_模拟KVO的底层实现、手动实现KVO
- styles.xml中的colorPrimary、colorPrimaryDark、colorAccent
- JS和PHP时间比较(小学生日常)