我有一个大的缓冲图像。
我想用第一个图像的数据创建另一个缓冲图像。
我尝试使用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:似乎子图像与原始图像相连,有没有一种创建缓冲图像的方式可以用剪切数据和实际原始尺寸?
我想用第一个图像的数据创建另一个缓冲图像。
我尝试使用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:似乎子图像与原始图像相连,有没有一种创建缓冲图像的方式可以用剪切数据和实际原始尺寸?