【发布时间】:2015-06-11 07:15:17
【问题描述】:
我需要通过 x,y 坐标移动已经制作的 BufferedImage,然后使用 Graphics2D 对象在其上绘制其他东西。我尝试使用此代码来做到这一点:
Graphics2D g = img.createGraphics();
g.translate(x, y);
但它不起作用。有什么方法可以移动 Graphics2D 对象中的所有内容,然后在其上绘制,或者我必须使用此代码来执行此操作:
BufferedImage temp = new BufferedImage(img.getWidth(),img.getHeight(),BufferedImage.TYPE_INT_ARGB);
Graphics2D g = temp.createGraphics();
g.drawImage(img,x, y,null);
使用此代码然后只绘制几个元素而不是从头开始制作整个图像在性能上并没有很大的飞跃,因此我认为制作新的 BufferedImage 然后在其上绘制图像并不是最好的方法。我宁愿从已经制作的图像中创建 Graphics2D 对象,然后将其沿对角线移动几个像素,但我找不到这样做的方法。
【问题讨论】:
-
您是否尝试将其绘制到自身上而不是创建临时图像(即使用
img.createGraphics().drawImage(img, x, y, null))?无论如何,听起来最好保留原始图像,并在绘制到屏幕时进行翻译。但是很难说你最终想在这里实现什么。 :-)
标签: java image graphics bufferedimage graphics2d