java 图片 批量 压缩 +全部压缩

2023-11-10

/*

oldsrc  : 原图片地址文件夹 如 'd:/'
   newsrc  : 压缩后图片地址文件夹 如 'e:/'
   widthdist,heightdist : 压缩后的宽和高
   
   createtime 2010-11-25
   @auto yijianfeng
 */

public void reduceImgAll(String oldsrc, String newsrc, int widthdist,
   int heightdist) {
  try {
   File file = new File(oldsrc);
   if (!file.exists()) {
    return;
   }
   File[] srcfile = file.listFiles();
   if (srcfile != null) {
    for (int i = 0; i < srcfile.length; i++) {
     if (srcfile[i].isFile()
       && (srcfile[i].getName().endsWith(".jpg")
         || srcfile[i].getName().endsWith(".JPG")
         || srcfile[i].getName().endsWith(".gif") || srcfile[i]
         .getName().endsWith(".gif"))) {
      Image src = javax.imageio.ImageIO.read(srcfile[i]);
      BufferedImage tag = new BufferedImage((int) widthdist,
        (int) heightdist, BufferedImage.TYPE_INT_RGB);
      tag.getGraphics().drawImage(
        src.getScaledInstance(widthdist, heightdist,
          Image.SCALE_SMOOTH), 0, 0, null);
      FileOutputStream out = new FileOutputStream(newsrc
        + srcfile[i].getName());
      JPEGImageEncoder encoder = JPEGCodec
        .createJPEGEncoder(out);
      System.out.println(oldsrc + "/" + srcfile[i].getName());
      encoder.encode(tag);
      out.close();
     } else {
      reduceImgAll(oldsrc + srcfile[i].getName(), newsrc,
        widthdist, heightdist);
     }
    }
   }
  } catch (IOException ex) {
   ex.printStackTrace();
  }
 }

转载于:https://blog.51cto.com/yjflinchong/1165014

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java 图片 批量 压缩 +全部压缩 的相关文章

随机推荐

  • 不踩坑的Python爬虫:如何快速学会爬取大规模数据

    如果你仔细观察 就不难发现 懂爬虫 学习爬虫的人越来越多 一方面 互联网可以获取的数据越来越多 另一方面 像 Python这样的编程语言提供越来越多的优秀工具 让爬虫变得简单 容易上手 无私分享全套Python爬虫干货 如果你也想学习Pyt
  • 【Android】OpenGL ES---绘制3D图形、应用纹理贴图

    绘制3D图形 glDrawElements int mode int count int type Buffer indices 根据indices指定的索引点来绘制三角形 第一个参数mode指定绘制的图形类型 可设置为GL10 GL TR
  • Matlab玩出新高度,变身表白女孩神器

    Matlab还可以这样玩儿 每逢节日愁哭程序员 不知道该送什么给喜欢的女孩子 在这里教你用Matlab玩儿出属于程序员的浪漫 送给她一整天的惊喜 一 效果图 二 完整模板代码 三 教你如何个性化定制 个性化定制1 个性化定制2 个性化定制3
  • ChatGLM2-6B安装部署(详尽版)

    1 环境部署 合理的上网工具 安装Anaconda3 安装GIT 安装GUDA 11 8 安装NVIDIA 图形化驱动 522 25版本 如果电脑本身是更高版本则不用更新 1 1 检查CUDA 运行cmd或者Anaconda 运行以下命令
  • 通讯录(动态实现与文件优化版)

    实现一个通讯录 通讯录可以用来存储1000个人的信息 每个人的信息包括 姓名 性别 年龄 电话 住址 提供方法 添加联系人信息 删除指定联系人信息 查找指定联系人信息 修改指定联系人信息 显示所有联系人信息 清空所有联系人 以名字排序所有联
  • backward()说明

    1 out backwark 中out是一个标量 此时可以直接使用out backwark import torch from torch autograd import Variable 生成一个内容为 2 3 的张量 Varibale
  • 半角和全角的区别

    很多时候我们阅读代码指导或者其他输入法总是会提到全角和半角 那么他们的区别是啥呢 区别 半角全角主要是针对标点符号来说的 全角标点占两个字节 半角占一个字节 而不管是半角还是全角 汉字都还是要占两个字节 英文半角占一个字节 也就是1byte
  • 六、STL容器:STL仿函数总结

    6 STL仿函数 6 1 概念 模仿函数的类 使用方式如同函数 本质是类中重载括弧运算符operator 6 2 场景 不同函数复用相同处理代码 6 3 使用 6 3 1 C语言的处理方式 使用函数指针和回调函数来实现代码复用 例如qsor
  • 记录的index表介绍

    index表定义 TYPE type name IS TABLE OF element type NOT NULL INDEX BY BINARY INTERGET 例如 1 TYPE emp type array IS TABLE OF
  • 365天挑战LeetCode1000题——Day 264 周赛336

    第一题 遍历 class Solution public int vowelStrings vector
  • python练习实例——金币问题

    目录 题目 解法 输出结果 题目 noip2015 复赛第一题 国王将金币作为工资 发放给忠诚的骑士 第一天 骑士收到一枚金币 之后两天 第二天和第三天 每天收到两枚金币 之后三天 第四 五 六天 每天收到三枚金币 之后四天 第七 八 九
  • sojson jsjiami.com.v6 爬虫js逆向

    sojson jsjiami com v6 爬虫js逆向 地址 aHR0cDovL3d3dy5wYmMuZ292LmNuL3JteWgvMTA1MjA4Lzg1MzIvaW5kZXg1Lmh0bWw 抓取内容 第一次请求 发现返回的不是正确
  • Thinkphp5使用sqlite3作为数据库无法存储小数点的解决方案

    Thinkphp5使用sqlite3作为数据库无法存储小数点的解决方案 在tp的官网搜了一下资料 主要是因为TP5自动绑定内型的时候自动将一些浮点数等类型的数字强制将PDO类型设置为了INT类型 而使用SQLITE数据库时 添加的语句遇到小
  • Centos安装Mysql图文配置详解

    1 安装镜像源 Centos7 MySQL 5 7 yum y install http repo mysql com mysql57 community release el7 rpm MySQL 8 0 yum y install ht
  • MayaToUE4之毛发

    毛发 说明 Maya流程 使用XGen UE4流程 毛发导入预设置 导入毛发 设置骨骼网格体的Groom 毛发材质 毛发物理效果 UE4假发一顶 说明 UE4毛发官方文档 Maya毛发创建XGen导出abc格式 并导入UE4 Maya流程
  • 在使用vnc viewer时候遇到connection refused 10061 111

    在使用vnc viewer时候遇到connection refused 10061 111 解决办法 一般是vncserver 没有启动的问题 在使用CentOS 的时候 可以使用ssh连接远程的服务器 开启vncserver ssh ro
  • Kubernetes 核心概念

    本节课程要点 什么是 Kubernetes 介绍 Kubernetes 的主要功能以及能力 Kubernetes 的架构 介绍 Kubernetes 的核心组件 以及介绍它们之间是如何相互互动连接 Kubernetes 的核心概念与核心 A
  • 安卓期末大作业智慧医疗app-疫苗预约app(附资源链接)

    安卓期末大作业智慧医疗app 疫苗预约app 一 登入页面 下载链接在文末 1 页面和功能展示 2 功能介绍 用户输入用户名和密码后 会和数据库的数据进行匹配 如果账号和密码正确就可以登入到主页面 输入空或者用户名密码错误时会提示错误 密码
  • PS如何快速修改证件照片底色

    PS快速修改证件照片底色 我这里是把蓝色换成红色 工具 原料 电脑 photoshop 方法 步骤 1 打开您的照片 我这个图片来自网络 2 1 选择菜单 选择 色彩范围菜单 2 这时候鼠标变成一个 吸管的形状 哟哦那个吸管在照片的背景上吸
  • java 图片 批量 压缩 +全部压缩

    oldsrc 原图片地址文件夹 如 d newsrc 压缩后图片地址文件夹 如 e widthdist heightdist 压缩后的宽和高 createtime 2010 11 25 auto yijianfeng public void