dポイントプレゼントキャンペーン実施中!

JAVAで、どうやったら半透明の画像(たとえば水の中に
いるような感じ)を表示できるのですか。

A 回答 (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 他を使用しませう。
    • good
    • 0
この回答へのお礼

ほんとにありがとうございます。
早速実行してみるととてもすごいです。

お礼日時:2002/06/09 18:43

こんばんは。


JAVAではないのですが、スタイルシートでも似たようなことができますので、かいてみました。
テーブルの中の画像を透かすというもので、↓をソースの<head>~</head>内に入れてください。

<STYLE type="text/css">
<!--
table,td
{filter:Alpha(opacity=60);}
-->
</STYLE>

ちなみに、(opacity=60)の部分の数字を変えると透け具合が変化します。(0が透明に100が不透明に)
テーブルの背景に使用したい画像を指定して、その上に文章を書けばいいと思います。
ただ、画像が透けるのと同じように文字も透けますのでご注意ください。
(CLASSとテーブル2個をを使って画像だけ透けるようにもがんばってみましたが、どちらも透けてしまって無理でした。)

JAVAに関しては詳しくないのでお教えすることができずすみません。
しかし、少しでもご参考になれば幸いです。
    • good
    • 0
この回答へのお礼

ありがとうございます。
僕も初心者です。

お礼日時:2002/05/23 17:25

「アルファ値」をキーワードに探してみませう

この回答への補足

何で探すのですか?

補足日時:2002/05/24 22:29
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!