您的位置:首页 > 编程语言 > Java开发

合并图片 java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds!

2013-08-22 12:14 731 查看
今天用java BufferedImage 合并图片时出现的这个问题,

最后发现是最后一张图片的宽高超出了限制大小,所以报了这个错。

我要在一张a4大小的图片上加一批二维码图片

合并图片的代码如下:

public void createPicTwo2(int x,int y)

{

try

{

//读取第一张图片

File fileOne = new File("h:\\test.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();

}

}

我要在一张a4大小的图片上加一批二维码图片,效果如图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐