android 图片质量压缩

作者: 我是田园犬丶 | 来源:发表于2016-05-24 10:22 被阅读318次

// 对于图片压缩,主要针对大图片,这里的压缩是采取先解码尺寸,然后计算压缩比,整数倍压缩方式,所以是近似结果;

public static Bitmap getZoomImage(String filename, int outWidth, int outHeight) {

FileInputStream fs = null;

BufferedInputStream bs = null;

try {

fs = new FileInputStream(filename);

bs = new BufferedInputStream(fs);

BitmapFactory.Options options = setBitmapOption(filename, outWidth, outHeight);

return BitmapFactory.decodeStream(bs, null, options);

} catch (Exception e) {

LogUtil.i(TAG, e);

} finally {

try {

bs.close();

fs.close();

} catch (Exception e) {

LogUtil.i(TAG, e);

}

}

return null;

}

private static BitmapFactory.Options setBitmapOption(String file, int outWidth, int outHeight) {

BitmapFactory.Options opt = new BitmapFactory.Options();

opt.inJustDecodeBounds = true;

// 设置只是解码图片的边距,此操作目的是度量图片的实际宽度和高度

BitmapFactory.decodeFile(file, opt);

int origWidth = opt.outWidth; // 获得图片的实际高和宽

int origHeight = opt.outHeight;

opt.inDither = false;

opt.inPreferredConfig = Bitmap.Config.RGB_565;

LogUtil.i(TAG, "原始信息  " + StringUtils.formatKeyValue("origWidth", "" + origWidth) + StringUtils.formatKeyValue("origHeight", "" + origHeight));

LogUtil.i(TAG, "目标信息  " + StringUtils.formatKeyValue("outWidth", "" + outWidth) + StringUtils.formatKeyValue("outHeight", "" + outHeight));

// 设置加载图片的颜色数为16bit,默认是RGB_8888,表示24bit颜色和透明通道,但一般用不上

opt.inSampleSize = 1;

// 设置缩放比,1表示原比例,2表示原来的四分之一....

// 计算缩放比

if (origWidth != 0 && origHeight != 0 && outWidth != 0 && outHeight != 0) {

int sampleSize = (int) (Math.max((float) origWidth / (float) outWidth, (float) origHeight / (float) outHeight) + 0.5f);

if (sampleSize < 1) {

sampleSize = 1;

}

opt.inSampleSize = sampleSize;

}

LogUtil.i(TAG, StringUtils.formatKeyValue("inSampleSize", "" + opt.inSampleSize));

opt.inJustDecodeBounds = false;// 最后把标志复原

return opt;

}

相关文章

  • Android

    Android常用图片压缩方式 质量压缩 尺寸压缩 1. 质量压缩 质量压缩通过相应算法进行优化Bitmap的位深...

  • Android 图片压缩

    android图的压缩分三种 1.质量压缩 2.比例压缩 3.减少像素占的位数压缩图片 质量压缩 质量压缩就是对图...

  • 图片压缩

    Android应用开发中三种常见的图片压缩方法,分别是:质量压缩法、比例压缩法(根据路径获取图片并压缩)和比例压缩...

  • 图片压缩

    Android图片压缩常用的有质量压缩、尺寸压缩、采样率压缩以及通过JNI调用libjpeg库来进行压缩(尺寸压缩...

  • android 图片质量压缩

    // 对于图片压缩,主要针对大图片,这里的压缩是采取先解码尺寸,然后计算压缩比,整数倍压缩方式,所以是近似结果; ...

  • Android 图片压缩

    参考 Android 图片压缩 此篇文章不讨论质量压缩,比例压缩与采样率压缩,只考虑使用libjpeg,绕过and...

  • Android性能优化--图片压缩

    Android图片压缩有多种压缩方式,常用的有质量压缩、尺寸压缩、采样率压缩以及通过JNI调用libjpeg库来进...

  • Android中RGB_565方式压缩图片详解

    Android压缩图片的方式 质量压缩 采样率压缩 缩放压缩 色彩压缩 RGB_565简介 RGB_565是色彩压...

  • Android图片压缩(尺寸压缩、质量压缩)

    相关的压缩和保存图片代码如下:

  • iOS 图片压缩方法

    两种图片压缩方法 两种图片压缩方法:压缩图片质量(Quality),压缩图片尺寸(Size)。 压缩图片质量 通过...

网友评论

    本文标题:android 图片质量压缩

    本文链接:https://www.haomeiwen.com/subject/qflzrttx.html