2014-01-19 48 views
0

我想从java中的其他图像制作图像,我有一些拼贴,并且裁剪了我需要的部分,我想将它们分组到另一个图像中;这里的为例:如何从java中的一些其他图像制作图像

enter image description here

可以说,我已经裁剪图像中的每个方块,我又需要一个功能,他们组在1个图像像第一张图片

public Image groupe(Image[][] images){ 
     Image image=new Image(); 
     for(int i=0;i<images.length;i++){ 
      for(int j=0;j<images[0].length;j++){ 
       //here i need a function to groupe the images into image 
      } 
     } 
     return image; 
} 
+0

基本上你创建一个新的[BufferedImage的(http://docs.oracle.com/javase/7/docs/api/java/awt/image/BufferedImage.html#getGraphics%28%29)然后画出其他图像缓冲区与[drawImage()](http://docs.oracle.com/javase/7/docs/api/java/awt/Graphics.html#drawImage%28java.awt.Image,%20int,%20int,%20int ,%20int,%20java.awt.image.ImageObserver%29) – PeterMmm

+0

我忘记说我正在使用Slick Image librarie,所以看起来很难从Image转换到BufferedImage – anony50600

回答

0

尝试类似这

import java.awt.Graphics2D; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 

import javax.imageio.ImageIO; 


public class Crop { 

/** 
* @param args 
* @throws IOException 
*/ 
public static void main(String[] args) throws IOException { 

    //split 
    BufferedImage image = ImageIO.read(new File("E:\\workspaceIndigo2\\crop\\src\\plasma.gif")); 

    System.out.println("Original Image Dimension: "+image.getWidth()+"x"+image.getHeight()); 

    //Get the cropped image 
    BufferedImage firstHalf = image.getSubimage(0, 0, (image.getWidth()/2),image.getHeight()); 
    BufferedImage secondHalf = image.getSubimage(image.getWidth()/2, 0, image.getWidth()/2, image.getHeight()); 

    //Create a file to stream the out buffered image to 
    File croppedFile1 = new File("E:\\workspaceIndigo2\\crop\\src\\half1.png"); 
    File croppedFile2 = new File("E:\\workspaceIndigo2\\crop\\src\\half2.png"); 

    //Write the cropped file 
    ImageIO.write(firstHalf, "png", croppedFile1); 
    ImageIO.write(secondHalf, "png", croppedFile2); 

    //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 

    //join 
    BufferedImage joined = new BufferedImage(image.getWidth(),image.getHeight(), image.getType()); 
    BufferedImage image1 = ImageIO.read(new File("E:\\workspaceIndigo2\\crop\\src\\half1.png")); 
    BufferedImage image2 = ImageIO.read(new File("E:\\workspaceIndigo2\\crop\\src\\half2.png")); 

    Graphics2D graph = joined.createGraphics(); 
    graph.drawImage(image1, 0, 0,null); 
    graph.drawImage(image2, image1.getWidth(), 0,null); 

    File joinedFile = new File("E:\\workspaceIndigo2\\crop\\src\\joined.png"); 
    ImageIO.write(joined, "png", joinedFile); 
} 

} 
相关问题