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


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0526
クロタケimgctl.dll の DIBtoGIFex の使用方法2解決


クロタケ

リンク

2010/5/26(Wed) 19:38:11|NO.32765

imgctl.dll の DIBtoGIFex関数を用いて透過GIFを作成しようと思っています。
DIBtoGIFex関数の使用方法を教えて下さい。(HSP3.1使用)


#include "imgctl3.as" gsel 00 : picload "????.gif" ;画像読込 ;旧DIB開放 if hDib!0 : DeleteDIB hDib ;DC→DIB取得 DCtoDIB hdc,0,0,ginfo_sx,ginfo_sy hDib=stat ;??? dim gifopt,10 ;GIFOPT構造体 gifopt.dwFlag |= GOF_TRNSCOLOR ;透過色指定(0x00000008) gifopt.clrTrans=0x00000000 ;透過色(黒) DIBtoGIFex "test.gif",hDib,gifopt ;??? end

問題は;???で囲まれた4行です。
GIFOPT構造体の指定の仕方が判りません。
clrTrans という変数も判りません。
GOF_TRNSCOLOR は 0x00000008 で定義されています。
判りましたら教えて下さい、よろしくお願いします m(..)m



この記事に返信する


check

リンク

2010/5/26(Wed) 21:54:39|NO.32767

サンプル

#uselib "imgctl.dll" #cfunc DCtoDIB "DCtoDIB" sptr, sptr, sptr, sptr, sptr #func DeleteDIB "DeleteDIB" sptr #func DIBtoGIFex "DIBtoGIFex" sptr, sptr, sptr #define RGB(%1, %2, %3) ((%1)|(%2<<8)|(%3<<16)) dirimg = dir_exe + "\\sample\\demo\\jp6girl.bmp" picload dirimg hDIB = DCtoDIB(hdc, 0, 0, ginfo_winx, ginfo_winy) dialog "gif", 17 if stat == 0 : goto *freedib dim gifopt, 7 gifopt(0) = 0x00000008 gifopt(1) = RGB(0, 0, 0) DIBtoGIFex refstr, hDIB, varptr(gifopt) *freedib DeleteDIB hDIB end
gifopt構造体の指定は、DWORD、LPARAMの型のメンバのところはそのまま配列変数のように
gifopt(0)、gifopt(1)、gifopt(2)のように指定してよい。
WORD型のメンバのところ(この場合はgifopt(3)とgifopt(4)の領域にあたる)は、
2BYTEずつ値を入れてやる必要がある。



クロタケ

リンク

2010/5/27(Thu) 13:48:53|NO.32779

ありがとうございます。
思い通りの画像を作成することができました。
これからも判らない点がありましたら、御指導をよろしくお願いします。



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