packagecom.snow.web.a_test;importjava.awt.Graphics;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjavax.imageio.ImageIO;importcom.sun.image.codec.jpeg.JPEGCodec;importcom.sun.image.codec.jpeg.JPEGEncodeParam;importcom.sun.image.codec.jpeg.JPEGImageEncoder;public classTest {private static String path = "F:\\";public static void main(String[] args) throwsException {
System.out.println("=======================================");//String path = "F:\\test.jpg";//File files = new File(path);//handleDpi(files, 300, 300);//String path = "F:\\";
File file1 = new File(path, "1.jpg");
File file2= new File(path, "2.png");//mosaicImage(file1, file2);
mergeImage(file1, file2);
}/*** 改变图片DPI
*
*@paramfile
*@paramxDensity
*@paramyDensity
*@throwsImageReadException*/
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();
}
}/*** 图片拼接
*@paramfile1 左边
*@paramfile2 右边
*@throwsIOException*/
public static void mosaicImage(File file1, File file2) throwsIOException {
BufferedImage image1=ImageIO.read(file1);
BufferedImage image2=ImageIO.read(file2);
BufferedImage combined= new BufferedImage(image1.getWidth() * 2, image1.getHeight(), BufferedImage.TYPE_INT_RGB);//paint both images, preserving the alpha channels
Graphics g =combined.getGraphics();
g.drawImage(image1,0, 0, null);
g.drawImage(image2, image1.getWidth(),0, null);//Save as new image
ImageIO.write(combined, "JPG", new File(path, "3.jpg"));
}/*** 图片合并
*@paramfile1 左边
*@paramfile2 右边
*@throwsIOException*/
public static void mergeImage(File file1, File file2) throwsIOException {
BufferedImage image1=ImageIO.read(file1);
BufferedImage image2=ImageIO.read(file2);
BufferedImage combined= newBufferedImage(image1.getWidth(), image1.getHeight(), BufferedImage.TYPE_INT_RGB);//paint both images, preserving the alpha channels
Graphics g =combined.getGraphics();
System.out.println(image2.getData());
g.drawImage(image1,0, 0, null);
g.drawImage(image2,0, 0, image1.getWidth(), image1.getHeight(), null);//Save as new image
ImageIO.write(combined, "JPG", new File(path, "4.jpg"));
}
}