3

在 Java SE 7 中,我创建了一个BufferedImage对象:

BufferedImage i = new BufferedImage(300, 300, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = i.createGraphics();

然后我用颜色填充图像的某些部分,使用多次调用fillPolygon,drawImage等(请注意,我的某些颜色的 alpha 小于 255。)

我的问题是,如何构造一个Area仅包含在 ? 中绘制的区域的对象BufferedImage?通过阅读 API 文档,我相信可以通过检查方法Raster返回的内容来完成getAlphaRaster,但我希望有一种更简单(更快?)的方法来做到这一点。

4

1 回答 1

1

..我怎样才能构造一个Area只包含被绘制到的区域的对象BufferedImage

在此来源中看到的getOutline(..)方法可用于区分图像的不透明和半透明部分。话虽如此,该方法仅检查该像素的目标颜色和图像颜色之间的“精确匹配”。您需要对其进行调整以检查 alpha <255。

该类ShapeContainment将用于确定一个点是否属于多个Area实例中的任何一个。

其他处理 Java-2D 和图像的代码可以在OneRing&中看到ShapeCollision

于 2013-11-14T23:11:41.513 回答