importcom.sun.image.codec.jpeg.JPEGCodec;importcom.sun.image.codec.jpeg.JPEGEncodeParam;importcom.sun.image.codec.jpeg.JPEGImageEncoder;importjavax.imageio.ImageIO;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;public classDPIHandleHelper {private static int DPI = 300;public static voidmain(String[] args) {
String path= "C:\\test.jpg";
File file= newFile(path);
handleDpi(file,300, 300);
}/*** 改变图片DPI
*
*@paramfile
*@paramxDensity
*@paramyDensity*/
public static void handleDpi(File file, int xDensity, intyDensity) {try{
BufferedImage image=ImageIO.read(file);
JPEGImageEncoder jpegEncoder= JPEGCodec.createJPEGEncoder(newFileOutputStream(file));
JPEGEncodeParam jpegEncodeParam=jpegEncoder.getDefaultJPEGEncodeParam(image);
jpegEncodeParam.setDensityUnit(JPEGEncodeParam.DENSITY_UNIT_DOTS_INCH);
jpegEncoder.setJPEGEncodeParam(jpegEncodeParam);
jpegEncodeParam.setQuality(0.75f, false);
jpegEncodeParam.setXDensity(xDensity);
jpegEncodeParam.setYDensity(yDensity);
jpegEncoder.encode(image, jpegEncodeParam);
image.flush();
}catch(IOException e) {
e.printStackTrace();
}
}
}