HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
0421
はなみず画像を複数色透過させるにはどうすればよいのでしょうか?1未解決


はなみず

リンク

2013/4/21(Sun) 19:54:20|NO.53615

片方は100%透過で、もう片方は50%くらいにしたいです。
そんな複雑なものを作るつもりはないのですが、これだけは自分の頭ではどうしようも・・・。

お願いします。



この記事に返信する


暇人

リンク

2013/4/22(Mon) 22:26:07|NO.53622

画像ファイルで用意してる物に対してなら
・α値付きPNGファイルにする
・gmode 7用のピクセルアルファブレンド用画像にする
・画像を読み込んでからgmode 7用の画像を作る

画像を読み込んでからgmode 7用の画像を作る方法

#module "mod_SetRGBAMask" #define global samtempid 321 //現在の操作先ウィンドウバッファの画像にピクセルアルファブレンド用画像を付け加えた画像を作りそのバッファIDを返す //SetRGBAMask col, colcnt, id //col =カラーキー配列(配列=R,G,B,A の順番で一つのカラーキーになる)、RGBは0〜255、Aは0〜256(0で透明、256が完全不透明) //colcnt =カラーキーの数 //id =バッファID(省略時は-1)、-1の時は未使用のウィンドウバッファIDが使われる //statにgmode 7用のアルファマスク含む画像のバッファIDが返る #define global SetRGBAMask(%1,%2=1,%3=-1) _SetRGBAMask %1,%2,%3 #deffunc _SetRGBAMask array col,int colcnt,int id xsiz=ginfo_sx ysiz=ginfo_sy gid=ginfo_sel buffer samtempid,xsiz,ysiz if id<0{_id=ginfo(25)}else{_id=id} buffer _id,xsiz*2,ysiz repeat colcnt color 255,255,255 boxf 0,0,xsiz,ysiz color col(cnt*4),col(cnt*4+1),col(cnt*4+2) gmode 4,xsiz,ysiz,256 //透明色付き半透明 pos 0,0 gcopy gid //白背景(_id)に指定色を抜いた画像をコピー gsel samtempid color boxf color col(cnt*4),col(cnt*4+1),col(cnt*4+2) pos 0,0 gmode 4,xsiz,ysiz,256 //透明色付き半透明 gcopy gid //黒背景(samtempid)に指定色を抜いた画像をコピー gsel _id pos 0,0 gmode 6,xsiz,ysiz,256 //色減算(100%) gcopy samtempid //白背景にコピーした画像に対して黒背景にコピーした画像を色減算コピー(色抜きされた部分の白背景だけが残る) gmode 6,xsiz,ysiz,256-col(cnt*4+3) //色減算(指定α値) pos xsiz,0 gcopy _id //白背景(_idの右側半分)に色減算コピー(上で残った白い部分だけ色減算コピーされる) loop gmode 0,xsiz,ysiz pos 0,0 gcopy gid //元画像を_idの左側に通常コピー gsel gid return _id #global gsx=640 gsy=480 screen 1,gsx,gsy color 50,100,100 boxf 100,100,500,450 color 255,255,255 boxf 200,200,400,400 color 255 circle 150,250,300,450,1 colmax=0 col(colmax*4)=255,255,255 ,0 //白を透過 colmax++ col(colmax*4)=255,0,0 ,128 //赤を半透明 colmax++ SetRGBAMask col,colmax id=stat screen 0 picload dir_exe+"\\hsptv\\sozai2.jpg" gmode 7 gcopy id,0,0,gsx,gsy

gmode 7のコピーは色減算合成コピー+色加算合成コピーをやってるのと変らないと思うから
通常コピーの数倍は重いと思っといた方が良い



ONION software Copyright 1997-2023(c) All rights reserved.