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


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
1217
シトラス白色を透過する方法4解決


シトラス

リンク

2023/12/17(Sun) 19:33:56|NO.100871

読み込んだ画像の白色(255,255,255)を透過する方法を教えてください。
gmodeのコピーモードをいじればよいのでしょうか?
その場合はコピーモード何番かとその前後のコードも教えていただけるとありがたいです。
お願いします。



この記事に返信する


沢渡

リンク

2023/12/17(Sun) 23:15:27|NO.100872

gmodeの第一パラメータを4(透明色付き半透明合成コピー)にして
第四パラメータの「半透明合成時のブレンド率」を256にし、
color 255,255,255とすれば白を透過させることができます。

//画像読み込み buffer 1 : gsel 1 picload "test.jpg" : w=ginfo_sx : h=ginfo_sy gsel 0 : color 0,0,0 : boxf gmode 4,,,256 : color 255,255,255 pos 0,0 : gcopy 1,0,0,w,h
また、WinAPIのTransparentBltを使う方法もありますが、(個人的にはこれがお勧め)
パラメータの数が11と多いので、マクロなりユーザー定義命令なりを利用して
使いやすくすることをお勧めします。

#uselib "msimg32.dll" #func TransparentBlt "TransparentBlt" int,int,int,int,int,int,int,int,int,int,int //TransparentBlt p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11 //指定した色を透過させてコピーする //p1 : コピー先のhdc //p2,p3 : コピー先の座標 //p4,p5 : コピー先の横幅と縦幅 //p6 : コピー元のhdc //p7,p8 : コピー元の座標 //p9,p10 : コピー元の横幅と縦幅(←コピー先の横幅や縦幅と違う場合は拡大縮小される) //p11 : 透過させる色を0xBBGGRRの形で指定する(RRGGBBではないことに注意) //実行後は「redraw 1」としないと描画が反映されない //画像読み込み buffer 1 : gsel 1 picload "test.jpg" : w=ginfo_sx : h=ginfo_sy hdc1=hdc //1番バッファのhdcを取得 gsel 0 : color 0,0,0 : boxf TransparentBlt hdc,0,0,w,h, hdc1,0,0,w,h, 0xFFFFFF redraw 1 //これを実行しないと反映されない



シトラス

リンク

2023/12/18(Mon) 19:14:28|NO.100878

ありがとうございます。
助かりました。



名無しのどん兵衛

リンク

2023/12/19(Tue) 11:23:09|NO.100882

ついでですが、自作の(初心者)カラー指定透過モジュールを作りました。気ままに使ってください。
#module
// 透明色を付けて画像貼り付けを行うモジュールです。 // p1にはIDを入れてください。 // pbnには分割Noを入れてください。 // pmodeは、0がRGB、1がHSV、2がパレット形式になります。 // pr,pg,pbには透明色を設定するカラーコード(RGB,HSV,PAL)を入れてください。 // ※パレット形式ならprのみ入れてください // zoomx,zoomyには倍率を入れてください。 // angleには角度(ラジアン)を入れてください。 #deffunc trcelput int p1,int pbn,int pmode,int pr,int pg,int pb,zoomx,zoomy,angle mref bmscr,67 copymode=bmscr(35) // 画面コピーモード gx=bmscr(33) // コピーする大きさX gy=bmscr(34) // コピーする大きさY blend=bmscr(65) // 半透明合成時のブレンド率 cr=ginfo_r cg=ginfo_g cb=ginfo_b // カラー設定 if pmode=0 : color pr,pg,pb if pmode=1 : hsvcolor pr,pg,pb if pmode=2 : palcolor pr gmode 4,,,256 celput p1,pbn,zoomx,zoomy,angle gmode copymode,gx,gy,brend color r,g,b return #global



名無しのどん兵衛

リンク

2023/12/20(Wed) 10:52:29|NO.100889




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