〜 グラフィック 〜
GIF画像を読み込んで表示

HSP3からは標準の画像読込命令picloadでGIF画像を読み込むことができますが、
HSP2まではGIF画像の読み込みには対応していません。
但し、古くから主にマルチメディア操作命令として存在するmci命令を利用することで、
HSP2でも任意IDのウィンドウへ読み込で表示することが可能です。
読み込めさえすれば、gcopy命令等での画像操作はできますので、好きにしてください。
HSP3でも同様に使用することができますが、元々picload命令で読み込めるので、
ムービー表示位置・サイズの取得設定を行うTipsを応用して、
読み込みと同時に位置・サイズの設定もできるようにしてみました。
尚、下記のサンプルでは表示(再生)のデバイスタイプにMPEGVideo2を使用していますが、
表示できない場合は、MPEGVideoを使用してください。それらの違いは…知りません。
	

gifload 読込ファイル
読込ファイル読み込むGIF画像を指定する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
#module
#deffunc gifload str
	mref file, 32
	mref bmscr, 67
	mci "open " + file + " type MPEGVideo2 alias picture"
	mci "window picture handle " + bmscr.13
	mci "play picture"
	return
#global

	dialog "gif", 16
	gifload refstr
	stop

gifload 読込ファイル, X座標, Y座標, 横幅, 高さ
読込ファイル読み込むGIF画像を指定する。
X座標読込先基点X座標指定する。
Y座標読込先基点Y座標指定する。
横幅貼り付け後の横サイズを指定する。
尚、省略または0を指定すると1倍で貼り付ける。
高さ貼り付け後の縦サイズを指定する。
尚、省略または0を指定すると1倍で貼り付ける。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#module
#deffunc gifload str file, int x, int y, int w, int h, local i, local s, local s2
	rect = x, y, w, h // X座標, Y座標, 横幅, 高さ
	mci "open " + file + " type MPEGVideo2 alias picture"
	mci "window picture handle " + hwnd
	mci "where picture source"
	s = refstr
	i = 0 // 位置
	repeat 4
		getstr s2, s, i, ' '
		i += strsize
		if rect.cnt = 0 : rect.cnt = 0 + s
	loop
	mci "put picture destination at " + rect.0 + " " + rect.1 + " " + rect.2 + " "+rect.3
	mci "play picture"
	return
#global

	dialog "gif", 16
	gifload refstr, 100, 50, 200, 100 // 座標(100, 50)にサイズ「200, 100」で表示
	stop