- ベストアンサー
半透明の画像
JAVAで、どうやったら半透明の画像(たとえば水の中に いるような感じ)を表示できるのですか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じです、説明はしません。 ただし、paint()でゴチャゴチャするのはお勧めしません。 import java.awt.*; import java.awt.event.*; import java.awt.image.*; public class Test extends Frame{ Image img; AlphaComposite ac; public static void main(String[] args){ Test test = new Test(); test.show(); } Test(){ addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ System.exit(0); } }); setBackground(Color.blue); setBounds(0, 0, 200, 200); addNotify(); // 50x50の水色の矩形の画像を用意 img = createImage(50, 50); Graphics g = img.getGraphics(); g.setColor(Color.cyan); g.fillRect(0, 0, 50, 50); } public void paint(Graphics g){ Graphics2D g2 = (Graphics2D)g; g2.translate(getInsets().left, getInsets().top); for(float i = 0.1f; i < 0.75f; i += 0.05f){ ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, i); g2.setComposite(ac); g2.drawImage(img, (int)(i * 200), (int)(i * 200), 50, 50, this); } } } 高度な透過処理をしたい場合は RGBImageFilter & FilteredImageSource & ImageProducer 他を使用しませう。
その他の回答 (2)
- redrose_wine
- ベストアンサー率36% (19/52)
こんばんは。 JAVAではないのですが、スタイルシートでも似たようなことができますので、かいてみました。 テーブルの中の画像を透かすというもので、↓をソースの<head>~</head>内に入れてください。 <STYLE type="text/css"> <!-- table,td {filter:Alpha(opacity=60);} --> </STYLE> ちなみに、(opacity=60)の部分の数字を変えると透け具合が変化します。(0が透明に100が不透明に) テーブルの背景に使用したい画像を指定して、その上に文章を書けばいいと思います。 ただ、画像が透けるのと同じように文字も透けますのでご注意ください。 (CLASSとテーブル2個をを使って画像だけ透けるようにもがんばってみましたが、どちらも透けてしまって無理でした。) JAVAに関しては詳しくないのでお教えすることができずすみません。 しかし、少しでもご参考になれば幸いです。
お礼
ありがとうございます。 僕も初心者です。
- happy_people
- ベストアンサー率30% (25/81)
「アルファ値」をキーワードに探してみませう
補足
何で探すのですか?
お礼
ほんとにありがとうございます。 早速実行してみるととてもすごいです。