BufferedImage
をオブジェクトに変換しShape
、すべての透明ピクセルを除外したいという問題に直面しています。
私が思いついたアルゴリズムは非常にひどいものですが、機能します。同じ結果を得るためのより効率的な方法を誰かが知っているかどうか疑問に思っていました。現時点で私が持っているものは次のとおりです。
// O(n^2)
Area a = new Area();
Rectangle r = new Rectangle();
r.setSize(1,1);
for(int x = 0; x < image.getWidth(); x++)
for(int y = 0; y < image.getHeight(); y++)
if(image.getRGB(x,y) >>> 24 > 0){
r.setLocation(x,y);
a.add(new Area(r));
}
return a;