importjavax.imageio.ImageIO;import java.awt.*;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.FileInputStream;/*** Created by liwj
* date:2018/2/23
* comment:*/
public classImageSplit {/*** 切割图片
*
*@throwsException*/
private static void splitImage() throwsException {
String originalImg= "C:\\Users\\liwj\\Desktop\\tidb\\image\\ori.jpg";
File file= newFile(originalImg);
FileInputStream fis= newFileInputStream(file);
BufferedImage image=ImageIO.read(fis);int rows = 2;int cols = 2;int chunks = rows *cols;int chunkWidth = image.getWidth() /cols;int chunkHeight = image.getHeight() /rows;int count = 0;
BufferedImage[] imgs= newBufferedImage[chunks];for (int x = 0; x < rows; x++) {for (int y = 0; y < cols; y++) {
imgs[count]= newBufferedImage(chunkWidth, chunkHeight, image.getType());
Graphics2D gr= imgs[count++].createGraphics();
gr.drawImage(image,0, 0, chunkWidth, chunkHeight,
chunkWidth* y, chunkHeight *x,
chunkWidth* y + chunkWidth, chunkHeight * x + chunkHeight, null);
gr.dispose();
}
}for (int i = 0; i < imgs.length; i++) {
ImageIO.write(imgs[i],"jpg", new File("C:\\Users\\liwj\\Desktop\\tidb\\image\\" + i + ".jpg"));
}
}/*** 合并图片
*
*@throwsException*/
private static void mergeImage() throwsException {int rows = 2;int cols = 2;int chunks = rows *cols;intchunkWidth, chunkHeight;inttype;
File[] imgFiles= newFile[chunks];for (int i = 0; i < chunks; i++) {
imgFiles[i]= new File("C:\\Users\\liwj\\Desktop\\tidb\\image\\" + i + ".jpg");
}
BufferedImage[] buffImages= newBufferedImage[chunks];for (int i = 0; i < chunks; i++) {
buffImages[i]=ImageIO.read(imgFiles[i]);
}
type= buffImages[0].getType();
chunkWidth= buffImages[0].getWidth();
chunkHeight= buffImages[0].getHeight();
BufferedImage finalImg= new BufferedImage(chunkWidth * cols, chunkHeight *rows, type);int num = 0;for (int i = 0; i < rows; i++) {for (int j = 0; j < cols; j++) {
finalImg.createGraphics().drawImage(buffImages[num], chunkWidth* j, chunkHeight * i, null);
num++;
}
}
ImageIO.write(finalImg,"jpeg", new File("C:\\Users\\liwj\\Desktop\\tidb\\image\\finalImg.jpg"));
}public static voidmain(String[] args) {try{
splitImage();
mergeImage();
}catch(Exception e) {
e.printStackTrace();
}
}
}