资源简介

java 处理图片大小等比例缩放;图片裁剪;支持图片压缩不失真;支持图片添加水印;支持动态图的处理;支持自定义图片大小的转换 等 压缩包中内附使用说明

资源截图

代码片段和文件信息

package com.system.oss.common.util;

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.gif4j.GifDecoder;
import com.gif4j.GifEncoder;
import com.gif4j.GifImage;
import com.gif4j.GifTransformer;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import com.zte.pp.otherplatforms.ToOtherPlatforms;

/** 图片工具类,完成图片的截取
 * 
 * @author LiLi */
public class IamgesResize
{
    private static Log log = LogFactory.getLog(IamgesResize.class);

    BufferedImage bufImage; // 原始图片
    int width; // 缩放的宽度
    int height; // 缩放的高度

    public IamgesResize()
    {
    }

    public IamgesResize(String srcPath int width int height)
    {
        this.width = width;
        this.height = height;
        try
        {
            this.bufImage = ImageIO.read(new File(srcPath));
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }

    /** 实现图像的等比缩放和缩放后的截取,如果高度的值和宽度一样,则缩放按设置的值缩放 (只控制宽度的大小,高度的值设置不生效(只有高度的值和宽度的一样才生效), 高度自动按比例缩放;如果缩放的图片小于你设置的值则保存原图大小)
     * 
     * @param inFilePath
     *            要缩放图片文件的路径
     * @param outFilePath
     *            缩放后保存图片输出的路径
     * @param width
     *            要截取宽度
     * @param hight
     *            要截取的高度
     * @param smooth 是否是动态图      
     *  
     * @throws Exception */

    public static void zoomOutImage(String inFilePath String outFilePath int width int hight boolean smooth)
            throws Exception
    {
        int maxHight = 500; // 设置最大的图片高度;

        File file = new File(inFilePath);
        InputStream in = new FileInputStream(file);
        File saveFile = new File(outFilePath);
        BufferedImage srcImage = ImageIO.read(in);
        // 原图的大小
        int sw = srcImage.getWidth();
        int sh = srcImage.getHeight();

        String gif = inFilePath.substring(inFilePath.lastIndexOf(“.“) + 1 inFilePath.length());

        if ((gif.equals(“gif“) || gif.equals(“GIF“)) && smooth == true) // gif动态图片的处理
        {
            
            IamgesResize.getGifImage(inFilePath outFilePath width hight true);
        }
        else
        {
            // 如果宽度和高度一样 或者图片的规格为 images_120 时不按等比缩放,如果需要等比缩放 则将下面的 if 语句注释即可

            // 如果原图片宽度大于高度,并且是缩小的高度宽度要求相等
            if (sw > sh && width == hight)
            {
                width = sw * hight / sh;
            }
            else if (!outFilePath.contains(“images_120“))
            {
                double sx = (double) width / sw;
                hight = (int) (sh

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件       17909  2019-03-05 17:49  java图片大小转换\IamgesResize.java
     文件       58005  2014-03-15 10:03  java图片大小转换\ToOtherPlatforms.java
     文件      136113  2014-03-15 10:02  java图片大小转换\gif4j.jar
     文件          93  2019-03-05 17:52  java图片大小转换\说明.txt
     目录           0  2019-03-05 17:51  java图片大小转换\

评论

共有 条评论