`

图片压缩

阅读更多
package com.ledong.util;  

import java.io.*;  
import java.util.Date;  
import java.awt.*;  
import java.awt.image.*;  
import javax.imageio.ImageIO;  
import com.sun.image.codec.jpeg.*;  

/** 
 * 图片压缩处理 
 */  
public class PictureCompress {
    private Image img;  
    private int width;  
    private int height;  
    
    @SuppressWarnings("deprecation")  
    public static void main(String[] args) throws Exception {  
        System.out.println("开始:" + new Date().toLocaleString());  
        PictureCompress imgCom = new PictureCompress("C:\\temp\\pic123.jpg");  
        //imgCom.resizeFix(150,150);  
        imgCom.resizeFix(720,720);  
        System.out.println("结束:" + new Date().toLocaleString());  
    }  
    
    /** 
     * 构造函数 
     */  
    public PictureCompress(String fileName) throws IOException {  
        File file = new File(fileName);// 读入文件  
        img = ImageIO.read(file);      // 构造Image对象  
        width = img.getWidth(null);    // 得到源图宽  
        height = img.getHeight(null);  // 得到源图长  
    }  
    
    /** 
     * 按照宽度还是高度进行压缩 
     * @param w int 最大宽度 
     * @param h int 最大高度 
     */  
    public void resizeFix(int w, int h) throws IOException {  
        if (width / height > w / h) {  
            resizeByWidth(w);  
        } else {  
            resizeByHeight(h);  
        }  
    }  
    
    /** 
     * 以宽度为基准,等比例放缩图片 
     * @param w int 新宽度 
     */  
    public void resizeByWidth(int w) throws IOException {  
        int h = (int) (height * w / width);  
        resize(w, h);  
    }  
    
    /** 
     * 以高度为基准,等比例缩放图片 
     * @param h int 新高度 
     */  
    public void resizeByHeight(int h) throws IOException {  
        int w = (int) (width * h / height);  
        resize(w, h);  
    }  
    
    /** 
     * 强制压缩/放大图片到固定的大小 
     * @param w int 新宽度 
     * @param h int 新高度 
     */  
    public void resize(int w, int h) throws IOException {  
        // SCALE_SMOOTH 的缩略算法 生成缩略图片的平滑度的 优先级比速度高 生成的图片质量比较好 但速度慢  
        BufferedImage image = new BufferedImage(w, h,BufferedImage.TYPE_INT_RGB);   
        image.getGraphics().drawImage(img, 0, 0, w, h, null); // 绘制缩小后的图  
        File destFile = new File("C:\\temp\\456.jpg");  
        FileOutputStream out = new FileOutputStream(destFile); // 输出到文件流  
        // 可以正常实现bmp、png、gif转jpg  
        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);  
        encoder.encode(image); // JPEG编码  
            out.close();  
        }  
 }  

 

分享到:
评论

相关推荐

    C#图片压缩工具源代码

    Grearo图片压缩工具 功能介绍【必读】: 1 图片批量压缩(30以内,依个人机器以及被压缩图片大小而定); 2 图片限定宽度,等比例压缩; 3 图片限定高度,等比例压缩; 4 图片限定高度,宽度压缩;...

    C# core 图片压缩 图片无损压缩 图片无损剪切 无损图片压缩 无损图片剪切

    C#/Core下,最完美的图片压缩,支持各种图片格式,无损压缩,无损剪切,按尺寸/比例压缩、剪切图片,根据自己需要任意处理图片

    图片压缩Caesium.zip

    图片压缩

    图片压缩工具_JPEG Optimizer无损压缩图片.rar

    GIF支持透明与动画,而JPG可以牺牲一部分画质按不同的比例压缩,就是图所占的空间越小,网页显示得越快,为了追求JPG在确保一定画质的前提下,进行最大比例的压缩,出现了不少专门压缩JPG与GIF的图片压缩软件,不过这类的...

    图片压缩软件图片压缩软件图片压缩软件

    图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩软件图片压缩...

    一款精美图片压缩网站源码.rar

    一款精美图片压缩网站源码.rar 源码介绍 一款很好看的图片压缩网站,原本的源码引用的国外js站点,我给下载放到本地调用了,访问速度更快。 一款很好看的图片压缩网站,原本的源码引用的国外js站点,我给下载放到...

    基于C++的图片压缩设计与实现.zip

    本次实验的图片压缩算法即主要基于离散余弦变换与huffman编码来进行压缩。 通过上述流程框图不难看出,压缩算法主要由6个部分组成,以下将对这六个环节进行逐一说明。 ①将图片分割为小块。由于一般的图片信息处理...

    图片压缩到最小.rar

    图片压缩到最小.rar

    阿里巴巴SimpleImage图片压缩相关jar

    图片压缩,阿里巴巴SimpleImage 相关jar文件。其中包含依赖jar: commons-io-2.4.jar;commons-lang.jar;commons-logging-1.1.1.jar jai_codec-1.1.3.jar;jai_core-1.1.3.jar; 包含jar:aliSimpleImage.jar。...

    java图片压缩处理 支持gif

    java图片压缩处理

    微信小程序实现图片压缩

    本文实例为大家分享了微信小程序图片压缩的具体代码,供大家参考,具体内容如下 设计思路: 选择图片后调用微信压缩图片接口,压缩后接收压缩图片的临时地址,调用微信储存接口保存图片至本地。 参数: imagesrc:...

    图片压缩工具JPGCompact

    图片压缩工具图片压缩工具图片压缩工具图片压缩工具图片压缩工具图片压缩工具

    png图片压缩器pngout

    png图片压缩器,方便你尽可能的缩小图片的大小。

    图片压缩节约内存

    实现图片压缩,可以节约内存,应用场合:ListView异步加载大量网络图片时,可以适当压缩显示,可以有效防止内存溢出,适合新手学习之用,gb编码

    java图片压缩处理

    java图片压缩处理java图片压缩处理java图片压缩处理java图片压缩处理java图片压缩处理java图片压缩处理

    图片压缩工具PNG图片压缩工具压缩率高不失真

    图片压缩工具PNG图片压缩工具压缩率高不失真

    图片压缩flex demo

    图片压缩 修改路劲 图片压缩flex demo

    html5 canvas 图片压缩

    完美支持各个主流浏览器,chrome,火狐, ios ,android 微信等的浏览器。解决某些手机拍照 图片旋转问题,解决图片压缩问题。欢迎使用

    C#图片压缩工具源代码(修改版)

    Grearo图片压缩工具(修改版) 增加功能: 1,图象压缩平滑处理,插补优化; 2,去除原版本图象压缩后出现马赛克; 3,解决大量图片压缩会出现“程序假死”现象; 功能介绍【必读】: 1 图片...

    java图片压缩处理(可以压缩为任意大小

    java图片压缩处理(可以压缩为任意大小

Global site tag (gtag.js) - Google Analytics