掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Imageに読み込んだ画像の透明度を変化させるには? (ID:44882)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
皆さん回答ありがとうございます ちなみに自分が言っている透明になっていくとは まさに「背景に溶け込んでいき、ついには背景しか見えなくなる」です 皆さんの回答を踏まえてコードを作ってみました Alpha値を入力してボタンを押すとその透明度で画像が表示されるようになりました しかし、ここで新たな問題が出てきました Image1とImage2を重ねて配置、 Image1に背景画像(1.bmp)、Image2にキャラクター画像(2.bmp)を読み込み、キャラクター画像の透明度を変化させます すると確かにImage2のキャラクター画像は透明度が調節されて表示されます しかし、キャラクター画像の背景まで表示されてしまうのです 最初に読み込むときはTransparentをTrueにしているのでちゃんと背景は透明のまま表示されますが、透明度をいじってからだとTransparentをいくらTrueにし直しても 背景が表示されてしまいます しかし透明度を255にするとちゃんとキャラクター画像の背景は消えます(完全に不透明だから?) どうすれば背景を透明のままキャラのみの透明度を変化させることが出来るのでしょうか 度々申し訳ございません よろしくお願いします 参考までにコードとプログラム、画像を一通りおいていきます http://firestorage.jp/download/5be96873e8c3a0e007504927e65e3631a66d9dac -------------------------- procedure TForm1.Button1Click(Sender: TObject); begin image1.Picture.LoadFromFile('1.bmp'); image2.Picture.LoadFromFile('2.bmp'); end; procedure TForm1.Button2Click(Sender: TObject); var BF :TBlendfunction; bmp :TBitmap; begin bmp :=TBitmap.Create; try bmp.LoadFromFile('2.bmp'); BF.Blendop :=AC_SRC_OVER; BF.BlendFlags :=0; BF.SourceconstantAlpha :=StrToInt(Edit1.Text); BF.Alphaformat :=0; image2.Picture:=nil; Windows.AlphaBlend(image2.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, bmp.Canvas.Handle, 0, 0, bmp.Width, bmp.Height, BF); image2.Transparent:=true; image2.Repaint; finally bmp.Free; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.