GC(org.eclipse.swt.graphics.GC)を使用して、いくつかの画像を1つの画像に結合しています(drawImageを使用)。問題は、デフォルトでGCの背景が白になっていることです。背景を透明に設定することはできますか?または、1つの画像から一部を切り取って、2番目の画像に貼り付ける他の解決策はありますか?
質問する
1800 次
2 に答える
1
簡単に言うと、GCはペンであり、ペンはキャンバスの透明度を制御できません。キャンバスに何かを描くことしかできません。したがって、GCは画像自体を操作することはできず、GCだけが画像に何かを描画できます。
ただし、ImageDataAPIを使用して透明度データを直接制御できます。ImageDataのsetPixel(x、y、pixel)、setAlpha(x、y、alpha)以外に高度な描画APIがないことを知っておく必要があります。
于 2012-11-09T09:12:36.883 に答える
1
背景のない Canvas を使用できます
Canvas canvas = new Canvas(parent, SWT.NO_REDRAW_RESIZE | SWT.NO_BACKGROUND);
そして、(この例のように) 画像の 1 つ (または複数) の色を透明にすることができます。
ImageData ideaData = new ImageData(getClass().getResourceAsStream("Idea.jpg"));
int whitePixel = ideaData.palette.getPixel(new RGB(255,255,255));
ideaData.transparentPixel = whitePixel;
Image transparentIdeaImage = new Image(display,ideaData);
于 2014-06-21T14:03:34.627 に答える