bitmap 将图片压缩到指定的大小 JAVA
来源:互联网 发布:java定义包的关键字 编辑:程序博客网 时间:2024/04/28 20:39
private void imageZoom() { //图片允许最大空间 单位:KB double maxSize =400.00; //将bitmap放至数组中,意在bitmap的大小(与实际读取的原文件要大) ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitMap.compress(Bitmap.CompressFormat.JPEG, 100, baos); byte[] b = baos.toByteArray(); //将字节换成KB double mid = b.length/1024; //判断bitmap占用空间是否大于允许最大空间 如果大于则压缩 小于则不压缩 if (mid > maxSize) { //获取bitmap大小 是允许最大大小的多少倍 double i = mid / maxSize; //开始压缩 此处用到平方根 将宽带和高度压缩掉对应的平方根倍 (1.保持刻度和高度和原bitmap比率一致,压缩后也达到了最大大小占用空间的大小) bitMap = zoomImage(bitMap, bitMap.getWidth() / Math.sqrt(i), bitMap.getHeight() / Math.sqrt(i)); } }
private void imageZoom() { //图片允许最大空间 单位:KB double maxSize =400.00; //将bitmap放至数组中,意在bitmap的大小(与实际读取的原文件要大) ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitMap.compress(Bitmap.CompressFormat.JPEG, 100, baos); byte[] b = baos.toByteArray(); //将字节换成KB double mid = b.length/1024; //判断bitmap占用空间是否大于允许最大空间 如果大于则压缩 小于则不压缩 if (mid > maxSize) { //获取bitmap大小 是允许最大大小的多少倍 double i = mid / maxSize; //开始压缩 此处用到平方根 将宽带和高度压缩掉对应的平方根倍 (1.保持刻度和高度和原bitmap比率一致,压缩后也达到了最大大小占用空间的大小) bitMap = zoomImage(bitMap, bitMap.getWidth() / Math.sqrt(i), bitMap.getHeight() / Math.sqrt(i)); } }
public static Bitmap resizeBitMapImage1(String filePath, int targetWidth, int targetHeight) { Bitmap bitMapImage = null; // First, get the dimensions of the image Options options = new Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(filePath, options); double sampleSize = 0; // Only scale if we need to // (16384 buffer for img processing) Boolean scaleByHeight = Math.abs(options.outHeight - targetHeight) >= Math .abs(options.outWidth - targetWidth); if (options.outHeight * options.outWidth * 2 >= 1638) { // Load, scaling to smallest power of 2 that'll get it <= desired // dimensions sampleSize = scaleByHeight ? options.outHeight / targetHeight : options.outWidth / targetWidth; sampleSize = (int) Math.pow(2d, Math.floor(Math.log(sampleSize) / Math.log(2d))); } // Do the actual decoding options.inJustDecodeBounds = false; options.inTempStorage = new byte[128]; while (true) { try { options.inSampleSize = (int) sampleSize; bitMapImage = BitmapFactory.decodeFile(filePath, options); break; } catch (Exception ex) { try { sampleSize = sampleSize * 2; } catch (Exception ex1) { } } } return bitMapImage; }
0 0
- bitmap 将图片压缩到指定的大小 JAVA
- bitmap 将图片压缩到指定的大小 JAVA
- bitmap 将图片压缩到指定的大小
- [Android算法] bitmap 将图片压缩到指定的大小
- bitmap 将图片压缩到指定的大小
- bitmap 将图片压缩到指定的大小
- [Android算法] bitmap 将图片压缩到指定的大小
- [Android算法] bitmap 将图片压缩到指定的大小
- [Android算法] bitmap 将图片压缩到指定的大小
- Bitmap图片压缩到指定字节大小
- android 将图片压缩到指定的大小的示例
- android将图片压缩到指定的大小
- android 将图片压缩到指定的大小
- Java将图片压缩至指定大小
- 压缩指定大小的BitMap
- 将Bitmap压缩成指定大小的缩略图
- iphone 压缩图片到指定的大小
- 压缩图片到指定大小
- SL - 整理 - WPF实现MDI窗体
- SL - 摘录 - 在MVVM模式下的VM层里使用线程的方法
- 常用的语言代码与国家地区对照表
- SL - 整理 - 将验证做到资源文件中
- SL - 整理 - 定义Dependency属性(使自定义组件属性能被绑定)
- bitmap 将图片压缩到指定的大小 JAVA
- SL - 整理 - 多线程调用UI组件时需注意的
- SL - 总结 - AutoCompleteSelector
- HD2 - 刷到wp7 NODO版
- Java Web中资源的访问路径
- IIS7 - HTTP Error 500 错误 0x80070021
- SL - 总结 - DataSelectorByLookupWindow
- SL - 总结 - ServerPagerViewModel - 1.0.2
- C#中readonly与const的区别