以下程序调试于jdk1.4
注:待合成的两张图片在D盘,名称分别为M114317.png和M114320.png
    新合成的图片也在D盘,取名为out.png
import java.io.File;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;public class test 
{    
  public static void main(String args[]) 
  {
    try
    {
      //读取第一张图片
      File fileOne = new File("D:\\M114317.png");
      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("D:\\M114320.png");
      BufferedImage ImageTwo = ImageIO.read(fileTwo);   
      int[] ImageArrayTwo = new int[width*height];
      ImageArrayTwo = ImageTwo.getRGB(0,0,width,height,ImageArrayTwo,0,width);
      //生成新图片
      BufferedImage ImageNew = new BufferedImage(width*2,height,BufferedImage.TYPE_INT_RGB);
      ImageNew.setRGB(0,0,width,height,ImageArrayOne,0,width);//设置左半部分的RGB
      ImageNew.setRGB(width,0,width,height,ImageArrayTwo,0,width);//设置右半部分的RGB
      File outFile = new File("d:\\out.png");
      ImageIO.write(ImageNew, "png", outFile);//写图片
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }
  }
}

解决方案 »

  1.   

    大牛人!!调试通过!!今天以内结帖(至少给你奉上50分)我原本打算用pixelgrabber抓取各张图的像素,再用MemoryImageSource将他们组合成一张图像,不知道这个方法是否可行
      

  2.   

    谢谢你。我也不是高手,只不过以前用过BufferedImage这个类,略知一二罢了。对于PixelGrabber和MemoryImageSource两个类从未接触过,不敢断言是否可行。
      

  3.   

    alphafish(alphafish) :请问如拼接两张wbmp图像则该如何处理?(RGB的处理是否应改变?)