切分和组合图片
切割图片
1. load 要切分的图片
2. 确定要切分成多少块
3. 计算小图片的高度和宽度
4. 切分图片
5. 保存图片
要切分图片:
 
 
 
[
java]
File file = new File("btg.jpg"); // 
项目目录下有名为btg.jpg的图片    
      FileInputStream fis = new 
FileInputStream(file);   
      BufferedImage image = ImageIO.read(fis); 
//把文件读到图片缓冲流中  
 
      int rows = 4; //定义图片要切分成多少块    
      int cols 
= 4;   
      int chunks = rows * cols;   
 
      int chunkWidth = 
image.getWidth() / cols; // 计算每一块小图片的高度和宽度   
      int chunkHeight = 
image.getHeight() / rows;   
      int count = 0;   
      BufferedImage 
imgs[] = new BufferedImage[chunks];   
      for (int x = 0; x < rows; 
x++) {   
          for (int y = 0; y < cols; y++) {   
              
//初始化BufferedImage   
              imgs[count] = new 
BufferedImage(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();   
          }   
      
}   
      System.out.println("切分完成");   
 
      
//保存小图片到文件中  
      for (int i = 0; i < imgs.length; i++) 
{   
          ImageIO.write(imgs
, "jpg", new File("img" + i + 
".jpg"));   
      }   
      System.out.println("小图片创建完成");   
  File file = new File("btg.jpg"); // 项目目录下有名为btg.jpg的图片 
        
FileInputStream fis = new FileInputStream(file); 
        BufferedImage image 
= ImageIO.read(fis); //把文件读到图片缓冲流中
 
        int rows = 4; 
//定义图片要切分成多少块 
        int cols = 4; 
        int chunks = rows * 
cols; 
 
        int chunkWidth = image.getWidth() / cols; // 
计算每一块小图片的高度和宽度
        int chunkHeight = image.getHeight() / 
rows; 
        int count = 0; 
        BufferedImage imgs[] = new 
BufferedImage[chunks]; 
        for (int x = 0; x < rows; x++) 
{ 
            for (int y = 0; y < cols; y++) { 
                
//初始化BufferedImage
                imgs[count] = new 
BufferedImage(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(); 
            } 
        
} 
        System.out.println("切分完成"); 
 
        
//保存小图片到文件中
        for (int i = 0; i < imgs.length; i++) 
{ 
            ImageIO.write(imgs, "jpg", new File("img" + i + 
".jpg")); 
        } 
        System.out.println("小图片创建完成"); 
切分完成:
 
 