3

如何将像 Rectangle2D.Double 这样的 Shape 对象转换为 Image 对象?

这样我就可以使用 Shape 对象来替换鼠标光标。

4

2 回答 2

2

draw(shape)一个,BufferedImage如图所示

于 2011-03-27T14:24:28.070 回答
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;
}

不过,您可能希望使用另一种颜色模型,以使您的形状显示为透明背景,而不是黑白或其他颜色。

于 2011-03-27T14:26:16.353 回答