• 締切済み

画像の重ね合わせがうまくできません・・

はじめまして。 画像を重ね合わせるプログラムを作成したいのですが、 期待通りにならないため悩んでおります。 Aという画像を下地に、Bという画像の特定RGBのドットを透過させて合成した画像を作りたいのですが、 どうもうまくいかず、半透明な絵ができてしまいます。 (Aがうっすらと見え、Bが重なるかんじ) 合成部分のコーディングは以下です。 AlphaCompositeの使い方が間違っているのか、AlphaCompositeではなく 別のクラスを使うのか、そもそも APIではできなくてドットを一個一個書い ていく必要があるのか・・? ご存じの方がいましたら、なにとぞご教授、お願いいたします。 public BufferedImage mergeTwice(BufferedImage baseImage, BufferedImage layImage) { // BufferedImage を Graphic2D に変換 Graphics2D baseGra = baseImage.createGraphics(); Graphics2D layGra = layImage.createGraphics(); // 2つの画像を合成 AlphaComposite composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f); baseGra.setComposite( composite ); baseGra.drawImage(layImage, 0, 0, null); AlphaComposite composite2 = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f); return baseImage; }

みんなの回答

  • kacchann
  • ベストアンサー率58% (347/594)
回答No.1

画像編集ツールで、 前景画像にあらかじめ「抜き部分」(透過ピクセル)を作っておけば、 あとは単純に「重ね描き」するだけで その部分は透けますが、 それはご存知ですか? それではダメ、ということでしょうか。(めんどう?) ダメだとすると、 「自力で合成」 するか(…ゆううつですが)、 または、 ある画像において、 指定色に一致したピクセルを自動的に「透過ピクセル」に変換する ようなユーティリティ関数を作るとか。 (つまり画象編集ツールでやるようなことを関数でやる) こっちのほうが便利かも

関連するQ&A