java BufferedImage 合成多張圖片
來源:互聯網
上載者:User
java BufferedImage 合成多張圖片 public void createPicTwo2(int x,int y)
{
try
{
//讀取第一張圖片
File fileOne = new File("h:\\h.jpg");
BufferedImage ImageOne = ImageIO.read(fileOne);
int width = ImageOne.getWidth();//圖片寬度
int height = ImageOne.getHeight();//圖片高度
//從圖片中讀取RGB
int[] ImageArrayOne = new int[width*height];
ImageArrayOne = ImageOne.getRGB(0,0,width,height,ImageArrayOne,0,width);
//對第二張圖片做相同的處理
File fileTwo = new File("h:\\img.png");
BufferedImage ImageTwo = ImageIO.read(fileTwo);
int widthTwo = ImageTwo.getWidth();//圖片寬度
int heightTwo = ImageTwo.getHeight();//圖片高度
int[] ImageArrayTwo = new int[widthTwo*heightTwo];
ImageArrayTwo = ImageTwo.getRGB(0,0,widthTwo,heightTwo,ImageArrayTwo,0,widthTwo);
//產生新圖片
BufferedImage ImageNew = new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
ImageNew.setRGB(0,0,width,height,ImageArrayOne,0,width);//設定左半部分的RGB
ImageNew.setRGB(x,y,widthTwo,heightTwo,ImageArrayTwo,0,widthTwo);//設定右半部分的RGB
ImageNew.setRGB(x*2,y,widthTwo,heightTwo,ImageArrayTwo,0,widthTwo);//設定右半部分的RGB
File outFile = new File("h:\\out.png");
ImageIO.write(ImageNew, "png", outFile);//寫圖片
}
catch(Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args) {
ImageDraw he = new ImageDraw();
he.createPicTwo2(100, 0);
}