123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- package com.lsw.commons.utils;
- import java.awt.Color;
- import java.awt.Graphics2D;
- import java.awt.Image;
- import java.awt.image.BufferedImage;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import javax.imageio.ImageIO;
- public class ImageZipUtil {
- /**
- * 根据设置的宽高等比例压缩图片文件<br>
- * 先保存原文件,再压缩、上传
- *
- * @param oldFile
- * 要进行压缩的文件
- * @param newFile
- * 新文件
- * @return 返回压缩后的文件的全路径
- */
- public static String zipImageFile(File oldFile, File newFile) {
- if (oldFile == null) {
- return null;
- }
- try {
- /** 对服务器上的临时文件进行处理 */
- Image srcFile = ImageIO.read(oldFile);
- int w = srcFile.getWidth(null);
- int h = srcFile.getHeight(null);
- int w1=w;
- int h1=h;
- if(w<800&&w>200){
- w1=(int) (w-w*0.3);
- h1=(int) (h-h*0.3);
- }else if (w<1600&&w>800) {
- w1=(int) (w-w*0.4);
- h1=(int) (h-h*0.4);
- }else if (w<2500&&w>1600) {
- w1=(int) (w-w*0.45);
- h1=(int) (h-h*0.45);
- }else if (w<4100&&w>2500) {
- w1=(int) (w-w*0.5);
- h1=(int) (h-h*0.5);
- }
- String srcImgPath = newFile.getAbsoluteFile().toString();
- String subfix = "jpg";
- subfix = srcImgPath.substring(srcImgPath.lastIndexOf(".") + 1, srcImgPath.length());
- BufferedImage buffImg = null;
- if (subfix.equals("png")) {
- buffImg = new BufferedImage(w1, h1, BufferedImage.TYPE_INT_ARGB);
- } else {
- buffImg = new BufferedImage(w1, h1, BufferedImage.TYPE_INT_RGB);
- }
- Graphics2D graphics = buffImg.createGraphics();
- graphics.setBackground(new Color(255, 255, 255));
- graphics.setColor(new Color(255, 255, 255));
- graphics.fillRect(0, 0, w1, h1);
- graphics.drawImage(srcFile.getScaledInstance(w1, h1, Image.SCALE_SMOOTH), 0, 0, null);
- ImageIO.write(buffImg, subfix, new File(srcImgPath));
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return newFile.getAbsolutePath();
- }
- /**
- * 根据设置的宽高等比例压缩图片文件<br>
- * 先保存原文件,再压缩、上传
- *
- * @param oldFile
- * 要进行压缩的文件
- * @param newFile
- * 新文件
- * @return 返回压缩后的文件的全路径
- */
- public static String zipImageFile(File oldFile, File newFile,double display) {
- if (oldFile == null) {
- return null;
- }
- try {
- /** 对服务器上的临时文件进行处理 */
- Image srcFile = ImageIO.read(oldFile);
- int w = srcFile.getWidth(null);
- int h = srcFile.getHeight(null);
- int w1=w;
- int h1=h;
- w1=(int) (w-w*display);
- h1=(int) (h-h*display);
- String srcImgPath = newFile.getAbsoluteFile().toString();
- String subfix = "jpg";
- subfix = srcImgPath.substring(srcImgPath.lastIndexOf(".") + 1, srcImgPath.length());
- BufferedImage buffImg = null;
- if (subfix.equals("png")) {
- buffImg = new BufferedImage(w1, h1, BufferedImage.TYPE_INT_ARGB);
- } else {
- buffImg = new BufferedImage(w1, h1, BufferedImage.TYPE_INT_RGB);
- }
- Graphics2D graphics = buffImg.createGraphics();
- graphics.setBackground(new Color(255, 255, 255));
- graphics.setColor(new Color(255, 255, 255));
- graphics.fillRect(0, 0, w1, h1);
- graphics.drawImage(srcFile.getScaledInstance(w1, h1, Image.SCALE_SMOOTH), 0, 0, null);
- ImageIO.write(buffImg, subfix, new File(srcImgPath));
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return newFile.getAbsolutePath();
- }
- /**
- * 按设置的宽度高度压缩图片文件<br>
- * 先保存原文件,再压缩、上传
- *
- * @param oldFile
- * 要进行压缩的文件全路径
- * @param newFile
- * 新文件
- * @param width
- * 宽度
- * @param height
- * 高度
- * @param quality
- * 质量
- * @return 返回压缩后的文件的全路径
- */
- public static String zipWidthHeightImageFile(File oldFile, File newFile, int width, int height, float quality) {
- if (oldFile == null) {
- return null;
- }
- String newImage = null;
- try {
- /** 对服务器上的临时文件进行处理 */
- Image srcFile = ImageIO.read(oldFile);
- String srcImgPath = newFile.getAbsoluteFile().toString();
- System.out.println(srcImgPath);
- String subfix = "jpg";
- subfix = srcImgPath.substring(srcImgPath.lastIndexOf(".") + 1, srcImgPath.length());
- BufferedImage buffImg = null;
- if (subfix.equals("png")) {
- buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
- } else {
- buffImg = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
- }
- Graphics2D graphics = buffImg.createGraphics();
- graphics.setBackground(new Color(255, 255, 255));
- graphics.setColor(new Color(255, 255, 255));
- graphics.fillRect(0, 0, width, height);
- graphics.drawImage(srcFile.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, null);
- ImageIO.write(buffImg, subfix, new File(srcImgPath));
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- return newImage;
- }
- }
|