美文网首页
图片质量压缩保存

图片质量压缩保存

作者: 奋飞的蜗牛ing | 来源:发表于2019-12-15 16:29 被阅读0次

不改变图片的分辨率大小,即图片始终为200x300。

 /**
   * 把Bitmap进行压缩保存成文件
   * 图片最终的格式为jpg
   *
   * @param dirPath 保存图片的目录
   * @param filename 保存图片的文件名
   * @param bitmap 要保存成文件的bitmap
   * @param maxKB 图片质量的最大值,单位为KB【压缩的阈值】
   */
  public static boolean saveBitmapToFile(@NonNull String dirPath, @NonNull String filename,
      @NonNull Bitmap bitmap, @NonNull int maxKB) {
    if (maxKB <= 0) {
      return false;
    }
    if (TextUtils.isEmpty(dirPath) || TextUtils.isEmpty(filename) || bitmap == null) return false;
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);//质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中
    int options = 100;
    while (baos.size() / 1024 > maxKB) { //循环判断如果压缩后图片是否大于maxKB,大于继续压缩
      baos.reset();//重置清空baos
      options -= 10;//质量压缩比例减10
      bitmap.compress(Bitmap.CompressFormat.JPEG, options, baos);//压缩options%,把压缩后的数据存放到baos中
    }
    FileOutputStream out = null;
    try {
      File dir = new File(dirPath);
      if (!dir.exists()) {
        dir.mkdirs();
      }

      File file = new File(dirPath, filename);
      if (file.exists()) {
        file.delete();
      }
      file.createNewFile();
      out = new FileOutputStream(file);
      baos.writeTo(out);
      out.flush();
    } catch (FileNotFoundException e) {
      e.printStackTrace();
      return false;
    } catch (IOException e) {
      e.printStackTrace();
      return false;
    } finally {
      CloseableUtil.closeSilently(out);
      CloseableUtil.closeSilently(baos);
    }
    return true;
  }

相关文章

  • 图片质量压缩保存

    不改变图片的分辨率大小,即图片始终为200x300。

  • vue(2019/7/15)

    vue实现照片选择或者拍照功能 照片格式校验, 图片质量压缩, 图片尺寸压缩, 图片离线保存, 图片base64编...

  • iOS 图片压缩方法

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

  • iOS 图片压缩限制大小

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

  • 图片压缩方法

    两种图片压缩方法 压缩图片质量(quality)、压缩图片尺寸(size) 压缩图片质量 或 前者可以控制压缩比例...

  • iOS 图片压缩方法

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

  • Android图片压缩-大小与质量压缩以及图片保存

    一、前言: Android中图片有四种属性,分别是:ALPHA_8:每个像素占用1byte内存ARGB_4444:...

  • Android图片压缩-大小与质量压缩以及图片保存

    一、前言: 1. Android中图片有四种属性,分别是: ALPHA_8:每个像素占用1byte内存 ARGB_...

  • iOS 图片压缩方法

    图片压缩可以通过两种方式实现,压缩图片质量和压缩图片尺寸。如果对图片清晰度有要求的,可以先压缩图片质量,在压缩图片...

  • Android

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

网友评论

      本文标题:图片质量压缩保存

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