public class ImageZipUtil {
/**
* 压缩图片文件<br>
* 先保存原文件,再压缩、上传
*
* @param oldFile
* 要进行压缩的文件全路径
* @param width
* 宽度
* @param height
* 高度
* @param quality
* 质量
* @param smallIcon
* 小图片的后缀
* @return 返回压缩后的文件的全路径
*/
public static String zipImageFile(String oldFile, int width, int height, float quality, String smallIcon) {
if (oldFile == null) {
return null;
}
String newImage = null;
try {
/** 对服务器上的临时文件进行处理 */
Image srcFile = ImageIO.read(new File(oldFile));
int w = srcFile.getWidth(null); int h = srcFile.getHeight(null);
System.out.println(w); //获取得到原来图像的高度
System.out.println(h); //获取得到原来图像的宽度
/** 宽,高设定 */
BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(srcFile, 0, 0, width, height, null);
String filePrex = oldFile.substring(0, oldFile.indexOf('.')); //取得到存放路径
System.out.println("--- "+filePrex); /** 压缩后的文件名 */
newImage = filePrex + smallIcon + oldFile.substring(filePrex.length()); //得到路径以及文件名
/** 压缩之后临时存放位置 */
FileOutputStream out = new FileOutputStream(newImage); //新建一个文件
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
JPEGEncodeParam jep = JPEGCodec.getDefaultJPEGEncodeParam(tag);
/** 压缩质量 */
jep.setQuality(quality, true);
encoder.encode(tag, jep);
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return newImage;
}
public static void main(String args[]){
ImageZipUtil.zipImageFile("E:/009.jpg", 128, 128, 1f, "x2");
}
}