在Java中将Shape对象转换为Image对象

时间:2011-03-27 13:53:35

标签: java image shape

如何将Rectangle2D.Double等Shape对象转换为Image对象?

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

2 个答案:

答案 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;
}

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