ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月28日(木) 23:20

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 3 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2009年10月31日(土) 20:22 
オフライン

登録日時: 2009年3月29日(日) 15:45
記事: 106
透過済み画像を制作する方法が一向に分かりません。
これで、マスク画像が作成されます。
しかし、これでは普通にマスクしか返りません。
これを透過処理をすましたBMPを返したいのですが、どうすればいいのでしょうか。
ご教授ください

_________________
↓個人的ソフト置き場
http://www.software.jpn.org/
↓萌えゲー製作とかしていたい
http://www.holygate.jpn.org/


通報する
ページトップ
投稿記事Posted: 2009年11月01日(日) 01:31 
オフライン

登録日時: 2005年5月31日(火) 10:52
記事: 264
お住まい: 高知
引用:
> これで、マスク画像が作成されます。
> しかし、これでは普通にマスクしか返りません。
> これを透過処理をすましたBMPを返したいのですが、どうすればいいのでしょうか。
> ご教授ください
このあたりのサイトが詳しそうですね。
http://homepage2.nifty.com/rleez/progra ... mask2.html

マスクを使った透過処理では前景となるマスク画像と、背景となるマスク画像の2つが
必要となります。
上記の関数は元となる画像を白黒にしただけだと推察されます。
その後に何らかの処理が必要ではないでしょうか?


あと開発環境および動作環境がWindowsNT、WindowsXP系列であれば、
TransparentBlt関数というそのものズバリ透過処理を行ってくれるものがあります。
下のURLを参考にしてください。
http://msdn.microsoft.com/ja-jp/library/cc428776.aspx

定義
コード:
Declare Function TransparentBlt Lib "msimg32" (hdcDest As HDC, nXDest As Long, nYDest As Long, nDestWidth As Long, nDestHeight As Long, hdcSrc As HDC, XSrc As Long, YSrc As Long, nSrcWidth As Long, nSrcHeight As Long, dwRop As DWord) As Long


通報する
ページトップ
投稿記事Posted: 2009年11月14日(土) 23:36 
オフライン

登録日時: 2009年3月29日(日) 15:45
記事: 106
ご回答ありがとうございます。
参考にして、しばらく戦っていましたが、どうしても、合成ができません。
ここまでできました。
コード:
' 背景マスクの生成
	BitBlt(hDest,0,0,bmp.bmWidth,bmp.bmHeight,hTemp,0,0,SRCCOPY)
	BitBlt(hMaskDC,0,0,bmp.bmWidth,bmp.bmHeight,hDest,0,0,NOTSRCCOPY)
	BitBlt(hTemp,0,0,bmp.bmWidth,bmp.bmHeight,hMaskDC,0,0,MERGEPAINT)
ここで、3つ目の処理をコメントにして、2つ目の処理のBmpを戻り地として返したところ、
背景が黒、画像部分が白のマスク画像ができました。

3つ目の処理で、元画像と合成しようとしたのですが、背景がしろ、画像部が黄色になってしまい、わけがわからなくなってしまいました。

これはどのようにしていけばいいのでしょうか?

_________________
↓個人的ソフト置き場
http://www.software.jpn.org/
↓萌えゲー製作とかしていたい
http://www.holygate.jpn.org/


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 3 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: Ahrefs [Bot] & ゲスト[20人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean