资源简介
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图片大小转换\
评论
共有 条评论