/*

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();

  }

 }

java 图片 批量 压缩 +所有压缩的更多相关文章

  1. java图片压缩工具类(指定压缩大小)

    1:先导入依赖 <!--thumbnailator图片处理--> <dependency> <groupId>net.coobird</groupId> ...

  2. JAVA图片批量上传JS-带预览功能

    这篇文章就简单的介绍一个很好用的文件上传工具,批量带预览功能.直接贴代码吧,都有注释,很好理解. HTML页面 <!DOCTYPE html> <%@ taglib prefix=& ...

  3. 利用WebUploader进行图片批量上传,在页面显示后选择多张图片压缩至指定路径【java】

    WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览 ...

  4. Java图片缩略图裁剪水印缩放旋转压缩转格式-Thumbnailator图像处理

    前言 java开发中经常遇到对图片的处理,JDK中也提供了对应的工具类,不过处理起来很麻烦,Thumbnailator是一个优秀的图片处理的开源Java类库,处理效果远比Java API的好,从API ...

  5. Java 图片压缩

    package com.wuyu.util; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.Buff ...

  6. Java 图片矢量压缩

    直接贴出工具类源码 package com.snow.web.util.publics; import java.awt.Image; import java.awt.image.BufferedIm ...

  7. Winform文件夹图片批量压缩整理修改

    效果图: 窗体设计器生成的代码: namespace ImageCompact { partial class MainForm { /// <summary> /// 必需的设计器变量. ...

  8. Android微信分享图片大于32k进行压缩

    微信分享视频的时候,需要传一个图片数组,大小不能大于32k. 解决方案:使用Bitmap自带的compress方法解决了这个问题. 源码如下: <span style="font-si ...

  9. 压缩图片工具类,压缩100KB以内拿走直接用

    最近遇到自拍上传图片过大问题,很烦恼,所以自己写了一个压缩图片的工具类使用,自测效果很不错,可以压缩到KB以内,像素还可以分辨清晰 下面Java代码奉上: import lombok.extern.s ...

随机推荐

  1. OrderAction

    package com.j1.mai.action; import java.io.BufferedReader; import java.io.IOException; import java.io ...

  2. R语言编程艺术# 矩阵(matrix)和数组(array)

    矩阵(matrix)是一种特殊的向量,包含两个附加的属性:行数和列数.所以矩阵也是和向量一样,有模式(数据类型)的概念.(但反过来,向量却不能看作是只有一列或一行的矩阵. 数组(array)是R里更一 ...

  3. Layout( 布局)

    一. 加载方式//class 加载方式<div id="box" class="easyui-layout"style="width:600px ...

  4. Ajax七层模型用途

    Ajax七层模型 OSI七层模型满足所有网格模型 1.物理层:符合标准: 2.数据链路层:如网卡.水晶头.连接网络层等: 3.网络层:路由器(数据外围打IP地址): 4.传输层:两台计算器端口的连接: ...

  5. 序列化和持久化 merge方法和saveOrUpdate方法

    merge方法和saveOrUpdate方法的区别 merge方法是把我们提供的对象转变为托管状态的对象:而saveOrUpdate则是把我们提供的对象变成一个持久化对象:说的通俗一点就是:saveO ...

  6. ORACLE基本SQL语句-添加更新数据函数篇

    一.添加数据 /*添加数据*/insert into STU values('stu0004','赵一',18,1,"kc0004");insert into STU(STU_ID ...

  7. 基于java callable及future接口解决生产者消费者问题

    这两天复习java线程时,把java里面的线程基本知识点与jdk1.5以后新添加的一些类的使用都了解了一下,借用生产者消费者的问题来将他们实践一下. 题目:(题目在csdn一大牛的空间找的) 生产者- ...

  8. Linux 下 oracle 导入数据库—数据泵方式导入dmp文件

    dmp导出数据源的oracle版本是12c,我本地oracle版本是11g,这在导入数据过程中导致出现错误 一.用system 用户登录oracle,我忘记了system密码,解决办法: [oracl ...

  9. VC++深入详解读书笔记-第六章菜单

    1.MFC都是采用大写字母来标识资源ID号. 2.程序中会用到多种资源,在为资源确定其ID号时,为了明确区分资源类型,一般都遵循这样一个原则:在“ID”字符串后加上一个标识资源类型的字母,例如,我们给 ...

  10. 无法更新 EntitySet“Ips_Articles”,因为它有一个 DefiningQuery,而 <ModificationFunctionMapping> 元素中没有支持当前操作的 <InsertFunction> 元素。

    今天我在使用ef的时候,发现了这样的报错. 无法更新 EntitySet“Ips_Articles”,因为它有一个 DefiningQuery,而 <ModificationFunctionMa ...