package org.wxz.tools.oracle.io.file.image.util;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import org.wxz.tools.oracle.exception.print.util.ExceptionPrintUtil;
import org.wxz.tools.oracle.io.file.util.FileCoverUtil;
import org.wxz.tools.oracle.io.file.util.FileFormatUtil;
/**
* 图片压缩工具类
*
* @author XiongZhi.Wu 2017年12月10日
*/
public abstract class ImageZipUtil {
// 默认是否要覆盖
private static final boolean DEFAULT_COVER = false;
/**
* 压缩
*
* @author XiongZhi.Wu 2017年12月10日
* @param source
* 源图片路径
* @param target
* 新图片路径
* @param width
* 新图片宽度
* @param heigth
* 新图片高度
* @return
*/
public static boolean zip(String source, String target, int width, int heigth) {
return zip(source, target, width, heigth, DEFAULT_COVER);
}
/**
* 压缩
*
* @author XiongZhi.Wu 2017年12月10日
* @param source
* 源图片路径
* @param target
* 新图片路径
* @param width
* 新图片宽度
* @param heigth
* 新图片高度
* @param cover
* 是否要覆盖
* @return
*/
public static boolean zip(String source, String target, int width, int heigth, boolean cover) {
return zip(new File(source), new File(target), width, heigth, cover);
}
/**
* 压缩
*
* @author XiongZhi.Wu 2017年12月10日
* @param source
* 源图片文件
* @param target
* 新图片路径
* @param width
* 新图片宽度
* @param heigth
* 新图片高度
* @return
*/
public static boolean zip(File source, String target, int width, int heigth) {
return zip(source, target, width, heigth, DEFAULT_COVER);
}
/**
* 压缩
*
* @author XiongZhi.Wu 2017年12月10日
* @param source
* 源图片文件
* @param target
* 新图片路径
* @param width
* 新图片宽度
* @param heigth
* 新图片高度
* @param cover
* 是否要覆盖
* @return
*/
public static boolean zip(File source, String target, int width, int heigth, boolean cover) {
return zip(source, new File(target), width, heigth, cover);
}
/**
* 压缩
*
* @author XiongZhi.Wu 2017年12月10日
* @param source
* 源图片路径
* @param target
* 新图片文件
* @param width
* 新图片宽度
* @param heigth
* 新图片高度
* @return
*/
public static boolean zip(String source, File target, int width, int heigth) {
return zip(source, target, width, heigth, DEFAULT_COVER);
}
/**
* 压缩
*
* @author XiongZhi.Wu 2017年12月10日
* @param source
* 源图片路径
* @param target
* 新图片文件
* @param width
* 新图片宽度
* @param heigth
* 新图片高度
* @param cover
* 是否要覆盖
* @return
*/
public static boolean zip(String source, File target, int width, int heigth, boolean cover) {
return zip(new File(source), target, width, heigth, cover);
}
/**
* 压缩
*
* @author XiongZhi.Wu 2017年12月10日
* @param source
* 源图片文件
* @param target
* 新图片文件
* @param width
* 新图片宽度
* @param heigth
* 新图片高度
* @return
*/
public static boolean zip(File source, File target, int width, int heigth) {
return zip(source, target, width, heigth, DEFAULT_COVER);
}
/**
* 压缩
*
* @author XiongZhi.Wu 2017年12月10日
* @param source
* 源图片文件
* @param target
* 新图片文件
* @param width
* 新图片宽度
* @param heigth
* 新图片高度
* @param cover
* 是否要覆盖
* @return
*/
public static boolean zip(File source, File target, int width, int heigth, boolean cover) {
if (FileCoverUtil.needCover(target, cover)) {
try {
BufferedImage bufferedImage = new BufferedImage(width, heigth, BufferedImage.TYPE_INT_RGB);
bufferedImage.getGraphics().drawImage(ImageIO.read(source), 0, 0, width, heigth, null);
ImageIO.write(bufferedImage, FileFormatUtil.format(target), target);
} catch (Exception e) {
throw new RuntimeException(ExceptionPrintUtil.initExceptionPrintModel(e, "Image Zip Cause Exception."));
}
}
return true;
}
}