LDBMP
LDBMP ビットマップファイルの読み込み
書式
LDBMP "ファイル名" , 仮想アドレス , Bx , By , 幅 , 高さ
LDBMP "ファイル名" , 仮想アドレス , Bx , By , 幅 , 高さ , 色指定
引数
"ファイル名" :ディレクトリパス(省略可能)+ファイル8文字+拡張子3文字 のファイル名
仮想アドレス :データの読み込みアドレス(仮想アドレス)
Bx :ビットマップ画像の切り出し横座標 0 ~ 32767
By :ビットマップ画像の切り出し縦座標 0 ~ 32767
幅 :ビットマップ画像の切り出しドット幅 1 ~ 32767
高さ :ビットマップ画像の切り出しドット高 1 ~ 32767
色指定 :0 変換なし、1 反転
説明
SDカード内のWindowsビットマップファイル(モノクロ2値)の指定領域の画像を切り出して、メモリ上に読み込みます。
読み込む画像はファイル名で指定します。
仮想アドレスの指定には次の定数を利用することが出来ます。
VRAM :画面表示用メモリ(CW×CH) サイズは利用する画面デバイスにより可変
VAR :変数領域 サイズ 420バイト
ARRAY :配列変数領域(@(0)~@(99) ) サイズ200バイト
PRG :プログラム領域 サイズ 4096バイト
MEM :ユーザーワーク領域 サイズ1024バイト
GRAM :グラフィック表示用メモリ サイズは利用する画面デバイスにより可変
https://gyazo.com/216c75eb36b11364e9c98096ff446104
ビットマップ画像上の座標(Bx、By)から指定した幅、高さの画像を指定した仮想アドレスに連続データとして格納します。指定した幅、高さがビットマップ画像よりも大きい場合は、切り出し幅、高さを画像サイズにて調整します。
引数の色指定にて、元の画像の白・黒を反転して読み込む指定が可能です。
注意:
連続したデータが指定した保存可能な領域をオーバーするチェックは行っていません。あらかじめ画像サイズを見積もった上で利用して下さい。ユーザーワーク領域(1024バイト)を利用した場合、格納できる画像は、128ドット×64ドットの画像程度です。
大きい画像を表示する場合、グラフィック表示用メモリに直接読み込むか、DWBMPコマンドを利用して下さい。 エラーメッセージ
Syntax error :文法エラー、書式と異なる利用を行った
Overflow :指定した数値が-32768 ~ 32767を超えている
利用例
下記の横96ドット、縦64ドットの画像(768バイト)ファイル"TT.BMP"の全データをユーザーワーク領域(MEM~)に読込み、BITMAPコマンドで2倍表示する。
画像ファイル
https://gyazo.com/8a9cc164bc9fb82c163eae534156ecd8
プログラム
code:ldbmp_sample1.bas
10 CLS
20 LDBMP "TT.BMP",MEM,0,0,96,64
30 BITMAP 10,30,MEM,0,96,64,2
40 GOTO 40
実行結果
https://gyazo.com/3d528663ce1fa3bc88bd003251c36724
同画像を、「豊」「四」「季」「TBASIC」の4つに分けて読込み、BITMAPコマンドで
分離して表示する。「豊」は反転して読み込む。
プログラム
code:ldbmp_sample2.bas
10 CLS
20 LDBMP "TT.BMP",MEM,0,0,32,32,1
30 LDBMP "TT.BMP",MEM+128,32,0,32,32
40 LDBMP "TT.BMP",MEM+256,64,0,32,32
50 LDBMP "TT.BMP",MEM+384,0,32,96,32
60 BITMAP 10,30,MEM,0,32,32,2
70 BITMAP 74,40,MEM,1,32,32,2
80 BITMAP 138,50,MEM,2,32,32,2
90 BITMAP 10,120,MEM+384,0,96,32,2
実行結果
https://gyazo.com/de0d9b56ed54df03ff68ae29742a394c
ビットマップ画像ファイル"CAT.BMP"を直接グラフィック表示用メモリに読み込んで画像を表示する。
プログラム
code:ldbmp_sample3.bas
10 CLS
20 LDBMP "CAT.BMP",GRAM,0,0,GW,GH
30 GOTO 30
実行結果
https://gyazo.com/877fb4e5e402328ca7cbf58abda845ee
※ビットマップ画像ファイル"CAT.BMP"はHelm42さんの猫絵を利用させて頂いています。
関連項目