将缓冲图像的特定部分复制到另一个缓冲图像中。

6
我有一个大的缓冲图像。
我想用第一个图像的数据创建另一个缓冲图像。
我尝试使用buffer.getData(new Rectangle(x,y,width,height))创建raster,然后用buffer2.setData(raster)设置数据。
但由于某种原因,数据被x,y翻译而不是0,0。例如,如果在原始图像中有一个位于x,y处的像素,则在新图像中仍将它保留在x,y处,而不是移动到0,0,因为矩形的位置已经被平移。
所以,有没有一种正确平移raster的方法或者有没有更好的复制图像的解决方案?
编辑:我也尝试使用getGraphics().drawImage()实现,这个方法可以通过定义两个角来定义2个矩形。但下面的方法更好,因为它不会覆盖。
编辑2:似乎子图像与原始图像相连,有没有一种创建缓冲图像的方式可以用剪切数据和实际原始尺寸?

你想要创建一个源图像的子图像吗? - nullpotent
1个回答

15

Java的子图像应该适合您的需求.. 尝试一下;

imageTwo = imageOne.getSubimage(x, y, width, height);

希望对你有所帮助 :-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接