说说在 Android 中如何压缩图片

作者: deniro | 来源:发表于2018-05-26 19:30 被阅读119次

目前存在两种压缩图片方式:

  • 质量压缩 - 不改变图片尺寸。
  • 按比例压缩 - 相当于是在像素上进行压缩。

而图片有三种存在形式:

  • file - 磁盘。
  • stream - 网络传输、内存。
  • bitmap - 内存。

bigmap 在内存中的大小是按像素计算的,也就是width * height,所以如果需要在 Android 中显示照片,那么就必须进行按比例压缩,避免因为内存消耗过大,导致 APP 退出。

 /**
     * 按比例压缩
     *
     * @param path   图片路径
     * @param width  宽度(像素)
     * @param height 高度(像素)
     * @return
     */
    public Bitmap ratioCompress(String path, float width, float height) {
        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inPreferredConfig = Bitmap.Config.RGB_565;//一个像素存储两个字节,默认为一个像素存储四个字节
        options.inJustDecodeBounds = true;//允许接下来直接得到 Bitmap 对象而不会消耗内存

        Bitmap bitmap = BitmapFactory.decodeFile(path, options);//只是空的 Bitmap 对象

        int outWidth = options.outWidth;
        int outHeight = options.outHeight;

        /**
         * 计算缩放比
         */
        int ratio = 1;//缩放比,1 表示不缩放
        if (outWidth > outHeight && outWidth > width) {//按照宽度进行缩放
            ratio = (int) (outWidth / width);
        } else if (outWidth < outHeight && outHeight > height) {//按照高度进行缩放
            ratio = (int) (outHeight / height);
        }
        if (ratio <= 0) {
            ratio = 1;
        }

        options.inSampleSize = ratio;//设置缩放比
        options.inJustDecodeBounds = false;
        return BitmapFactory.decodeFile(path, options);//压缩
    }

是不是很简单呀 O(∩_∩)O哈哈~

相关文章

  • 说说在 Android 中如何压缩图片

    目前存在两种压缩图片方式: 质量压缩 - 不改变图片尺寸。 按比例压缩 - 相当于是在像素上进行压缩。 而图片有三...

  • Android:图片压缩的几种方式

    1、前言 在Android中,图片的压缩对于内存的优化很重要 通过这篇文章对Android中的几种图片压缩方式进行...

  • android中如何压缩图片

    为什么需要压缩? android中的图片是以Bitmap形式存在的,bitmap的大小和数量会直接影响到手机内存情...

  • 图片压缩之优化篇

    之前曾经对Android中图片中的压缩方式进行分析和总结。详见图片压缩篇。基本涵盖了基础的压缩方法和思路。但是在实...

  • Android NDK编译libjpeg-turbo压缩图片

    Android开发中,我们经常要面对图片压缩,大部分人使用Android Bitmap进行压缩,还有一些使用lib...

  • Bitmap图片压缩

    Android中图片是以bitmap形式存在的,这篇文章主要介绍了Android实现图片压缩(bitmap的六种压...

  • android App图片资源文件压缩利器McImage

    Android App图片资源文件压缩利器McImage 这个图片资源压缩利器McImage在我司的产品线中使用了...

  • 图片压缩

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

  • Android Apk 优化:PNG图片压缩对比分析

    第118期:Android Apk 优化:PNG图片压缩对比分析 [英] 深入理解 Android和Java中的引...

  • 图片压缩

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

网友评论

    本文标题:说说在 Android 中如何压缩图片

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