如何将Rectangle2D.Double等Shape对象转换为Image对象?
这样我可以使用Shape对象替换鼠标。
答案 0 :(得分:2)
BufferedImage
中的draw(shape)
here,如图所示{{3}}。
答案 1 :(得分:1)
您必须创建一个图像对象,该对象在正确的位置包含正确的像素。
一种方式是这样的:
public Image makeImage(Shape s) {
Rectangle r = s.getBounds();
Image image = new BufferedImage(r.width, r.height, BufferedImage.TYPE_BYTE_BINARY);
Graphics2D gr = image.createGraphics();
// move the shape in the region of the image
gr.translate(-r.x, -r.y);
gr.draw(s);
gr.dispose();
return image;
}
但是,您可能希望使用其他颜色模型,使您的形状显示为透明背景,而不是黑白色或其他颜色。