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




記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.100871への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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