å¯ä»¥ä½¿ç¨Drawè¿ä¸ªç±»ï¼éè¿æ¹ååç´ æ¥æ¹ååå¨å¤§å°ï¼å®ä¾å¦ä¸ï¼
public static boolean compressPic(String srcFilePath, String descFilePath) throws IOException {
File file = null;
BufferedImage src = null;
FileOutputStream out = null;
ImageWriter imgWrier;
ImageWriteParam imgWriteParams;
// æå®åå¾ççæ¹å¼ä¸º jpg
imgWrier = ImageIO.getImageWritersByFormatName("jpg").next();
imgWriteParams = new javax.imageio.plugins.jpeg.JPEGImageWriteParam(
null);
// è¦ä½¿ç¨å缩ï¼å¿
é¡»æå®å缩æ¹å¼ä¸ºMODE_EXPLICIT
imgWriteParams.setCompressionMode(imgWriteParams.MODE_EXPLICIT);
// è¿éæå®å缩çç¨åº¦ï¼åæ°qalityæ¯åå¼0~1èå´å
ï¼
imgWriteParams.setCompressionQuality((float) 1);
imgWriteParams.setProgressiveMode(imgWriteParams.MODE_DISABLED);
ColorModel colorModel =ImageIO.read(new File(srcFilePath)).getColorModel();// ColorModel.getRGBdefault();
// æå®å缩æ¶ä½¿ç¨çè²å½©æ¨¡å¼
// imgWriteParams.setDestinationType(new javax.imageio.ImageTypeSpecifier(
// colorModel, colorModel.createCompatibleSampleModel(16, 16)));
imgWriteParams.setDestinationType(new javax.imageio.ImageTypeSpecifier(
colorModel, colorModel.createCompatibleSampleModel(16, 16)));
try {
if (isBlank(srcFilePath)) {
return false;
} else {
file = new File(srcFilePath);System.out.println(file.length());
src = ImageIO.read(file);
out = new FileOutputStream(descFilePath);
imgWrier.reset();
// å¿
é¡»å
æå® outå¼ï¼æè½è°ç¨writeæ¹æ³, ImageOutputStreamå¯ä»¥éè¿ä»»ä½
// OutputStreamæé
imgWrier.setOutput(ImageIO.createImageOutputStream(out));
// è°ç¨writeæ¹æ³ï¼å°±å¯ä»¥åè¾å
¥æµåå¾ç
imgWrier.write(null, new IIOImage(src, null, null),
imgWriteParams);
out.flush();
out.close();
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
public static boolean isBlank(String string) {
if (string == null || string.length() == 0 || string.trim().equals("")) {
return true;
}
return false;
}