読者です 読者をやめる 読者になる 読者になる

プログラミングノート

一からものを作ることが好きなエンジニアの開発ブログです。

画像の透過処理について

iアプリ

iアプリは透過GIFを表示できますが、「Jarファイル⇒スクラッチパッドに保存⇒ファイルを取り出して表示」という手順で利用すると透過されなくなります(結構悩んだ…)。


このような場合や、透過GIFを作るのも面倒だという場合は、下記手順で指定色を透過して表示すればOKです。ただし、指定した色だけではなく、近い色も透過されるようなので、ここで指定する色には注意が必要です。(255,255,255を指定したのに、254,254,254のピクセルも透過されるなど)

Image img = イメージ取得;
img.setTransparentColor(Graphics.getColorOfRGB(R,G,B));
img.setTransparentEnabled(true);
g.drawImage(img, ...);

上記メソッドに対応していない場合(Doja4.1など)では下記メソッドが使えます。

try{
  Image img = イメージ取得;
  TransparentImage timg = TransparentImage.createTransparentImage(img);
  timg.setTransparentEnabled(true);
  timg.setTransparentColor(Graphics.getColorOfRGB(R,G,B));
  g.drawImage(timg, ...);
	
}catch(UnsupportedOperationException ue){
  //透過できない
}