プレイ日記
otta777 otta777a
グラフィック画面の一部をSAVE "GRPn:ファイル名"でセーブするより小さいサイズでセーブする命令を作ってみました。400×240のサイズで192KB程のファイルになります。そのファイルをグラフィック画面にロードしたり配列変数に読みんだりその一部を取り出す関数も同梱してます。 パラメータ判別のバグの修正と機能を追加したため再度公開します。 【公開キー】BN3DVAE
12そうだね
プレイ済み
返信[1]
親投稿
otta777 otta777a
コードの続き その1
0そうだね
プレイ済み
返信[2]
親投稿
otta777 otta777a
コードの続き その2
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
GSAVE_FILE ファイル名,転送元ページ,始点X,始点Y,幅,高さ  指定したグラフィックページの指定した範囲の画像データと  画像サイズをファイル名で指定した名前のデータファイルと  して保存します。  1ドット2バイトでセーブされるため400×240ドットで  約190KBになります。
0そうだね
プレイ済み
返信[4]
親投稿
otta777 otta777a
GLOAD_FILE ファイル名,始点X,始点Y  ファイル名で指定した名前のデータファイルから  GPAGE命令の操作ページで指定したページに  GSAVE_FILE命令でセーブしたサイズの画像データを  GSAVE_FILEで指定した幅、高さの画像を始点X,始点Yの  オフセット位置に描画します。
0そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
配列変数=GGET_FILE(ファイル名)  ファイル名で指定した名前のデータファイルから指定した  整数型配列変数にGLOAD命令で扱えるデータを読み込みます。  配列変数の最後に画像のサイズが含まれているので  POP関数で必ずサイズ情報を取り出しをしてGLOAD命令の  幅、高さに指定して下さい。  ※配列変数を戻り値にする場合、DEF ~ OUT ~という記述で  複数の戻り値を返せない仕様のためこのようにしました。
0そうだね
プレイ済み
返信[6]
親投稿
otta777 otta777a
配列変数=GEXTRACT_ARY(GGET_FILEで読み込んだ配列変数,始点X,始点Y,幅,高さ)  GGET_FILE関数で読み込んだ整数配列変数から左上を基準として  始点X,始点Yから幅W,高さHの画像データを配列変数に抽出します。  GGET_FILE命令を実行後、POP関数でサイズ情報を取り出す前に  この関数を実行して下さい。この関数で元画像のサイズを参照します。
0そうだね
プレイ済み
返信[7]
親投稿
otta777 otta777a
FN$="SAMPLE01.DAT" 'ファイル名 PG%=0 ’転送元ページ X%=0 '始点X Y%=0 '始点Y W%=400 '幅 H%=240 '高さ GSAVE_FILE FN$,PG%,X%,Y%,W%,H% でセーブできます。 ロードをする場合は変数の設定とGPAGE命令で画像を 読み込むページを指定した後に GLOAD_FILE FN$,X%,Y% でロードできます。(続く)
0そうだね
プレイ済み
返信[8]
親投稿
otta777 otta777a
(続き)ロードをする場合は変数の設定とGPAGE命令で画像を 読み込むページを指定した後に GLOAD_FILE FN$,X%,Y% でロードできます。 一度配列に読み込んでGLOAD命令で描画する場合は データを読み込む配列変数を宣言してGGET_FILE関数で 読み込みます。画像の一部分を抽出して描画する場合は 先にGEXTRACT_ARY関数を実行します。 GLOAD命令で描画する前にPOP関数で高さと幅を取り出して GLOAD命令の幅と高さに指定します。
0そうだね
プレイ済み
返信[9]
親投稿
otta777 otta777a
(前のコメントの続き) DIM BUF%[0],BUF0%[0} BUF%=GGET_FILE(FN$) EX%=50:EY%=50:EW%=30:EH%=30'切り取り位置とサイズ BUF0%=GEXTRACT_ARY(BUF%,EX%,EY%,EW%,EH%) H%=POP(BUF%):W%=POP(BUF%)'GLOAD命令で使う GLOAD 20,20,W%,H%,BUF% GLOAD 40,40,W%,H%,BUF% GLOAD 60,60,EW%,EH%,BUF1%
0そうだね
プレイ済み
返信[10]
親投稿
otta777 otta777a
ダウンロードしたプログラムには機能紹介のサンプルも 一緒になっています。コメントを見て、DEF以降を流用される プログラムに組み込んで使って下さい。
1そうだね
プレイ済み
返信[11]
親投稿
otta777 otta777a
申し訳ないです。入力ミスがありました。 99行目の DEF GEXTRACT_ARY%,X%,Y%,W%,H%) を DEF GEXTRACT_ARY(A%,X%,Y%,W%,H%) に修正して下さい。 動作確認後にYボタンで「(A」を削除してアップロードして しまったようです。
0そうだね
プレイ済み