08/06/20 15:53:16
>>420
何をもって背景にするかによって方法はいろいろあるけど、
一番お手軽で処理が速いのは>>421の言う通り最初から透明化したリソースを用意すること。
動的に透過色を変更したいとかの要求があるなら、イメージフィルタを通す方法がある。
例えば真っ白を背景色として透明にするなら、白のピクセルのアルファを0にするイメージフィルタを介してやる。
おおまかにはこんな感じで。
Image transimage = Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(
sourceimage.getSource(),
new RGBImageFilter() {
public int filterRGB(int x, int y, int rgb) {
return (rgb & 0x00ffffff) == 0x00ffffff ? rgb & 0x00ffffff : rgb;
}
}
));
これは背景色が固定された処理だけど、
背景にしたい色を与えて動的に背景色を変更するようにフィルタを実装すればそれなりにいろいろと。