簡體   English   中英

獲取包含Java中BufferedImage中的非透明像素的區域

[英]Get an Area containing the non-transparent pixels in a BufferedImage in Java

在Java SE 7中,我創建了一個BufferedImage對象:

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

然后我用顏色填充圖像的一部分,使用幾個調用fillPolygondrawImage等(注意我的一些顏色的alpha小於255.)

我的問題是,如何構造一個僅包含BufferedImage繪制的區域的Area對象? 通過閱讀API文檔,我相信它可以通過檢查getAlphaRaster方法返回的Raster來完成,但我希望有一種更簡單(也更快)的方法。

..我可以構造一個Area對象,它只包含在BufferedImage繪制的區域嗎?

在此源中看到的getOutline(..)方法可用於區分圖像的不透明和半透明部分。 話雖如此,該方法僅檢查該像素的目標顏色和圖像顏色之間的“精確匹配”。 你需要調整它來檢查alpha <255。

ShapeContainment類將用於確定某個點是否屬於多個Area實例中的任何一個。

OneRingShapeCollision可以看到其他使用Java-2D和圖像的ShapeCollision

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM