2

時間の経過とともに画像の透明度を変更しようとしていますが、のメソッドdrawImage()でこれを行っていjava.awt.Graphicsます。これを行う方法についてオンラインでさまざまな回答があることは知っていますが、理解して実装するのに十分なほど単純なものを見つけることができません。

BufferedImage画像があり、この画像を 50% の不透明度で描画したいとしましょう。どのように初期化imageし、描画時に画像のアルファ レベルを調整するにはどうすればよいでしょうか。drawImage()このメソッドを使用して、画像の透明度を変更するために何かを行うことができれば素晴らしいと思いますが、おそらくそれほど単純ではありません。

4

2 に答える 2

1

画像フィルターを使用。

float[] scales = { 1f, 1f, 1f, 0.1f };
float[] offsets = new float[4];
RescaleOp rop = new RescaleOp(scales, offsets, null);
g2d.drawImage(buffimg, rop, 0, 0);

scales 配列の 4 番目の要素は透明度で、この値は 0 ~ 1 の間です

camickr による回答は、すべての内部コンポーネントを含むコンポーネント全体にアルファを適用させます。しかし、それははるかに高速になります。

警告: 画像フィルタは慎重に使用してください

参照: http://www.informit.com/articles/article.aspx?p=1013851&seqNum=2

于 2013-05-29T20:16:33.853 に答える