「ゲームプログラミング/画像ファイルの作成プログラム」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎コード例: リファクタリング;主にマジックナンバーの排除
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
444 行
 
char buf[] = {
 
// 1 line
0x42, 0x4d, //
0x4d0x82, 0, 0, 0, //ファイルサイズ
0, 0, //予約領域
0x82,
0, 0, //予約領域
0x76, 0, 0, 0, // ヘッダサイズ
0,
0, //ファイルサイズ
0,
0, //予約領域
0,
0, //予約領域
0x76,
0,
0,
0, // ヘッダサイズ
 
0x28, 0, 0, 0, // 情報ヘッダサイズを4バイトで指定
0x28,
0,
0,
0, // 情報ヘッダサイズを4バイトで指定
 
// 2 line
05, 00, 00, 00, // 画像の横幅
03, 00, 00, 00, // 画像の高さ
01, 00, // プレーン数
04, 00, // 画像の横幅色ビット数
00, 00, 00, 00, // 圧縮形式
03,
00,
00,
00, // 画像の高さ
01,
00, // プレーン数
04,
00, // 色ビット数
00,
00,
00,
00, // 圧縮形式
 
// 3 line
0x0C, 0x00, 00, 00, // 画像データ部分のサイズ
0x0C,
// 12バイト(コード下部の画素の合計バイトと一致)
0x00,
0xC4, 0x0E, 00, 00, // 横方向の解像度
00,
0xC4, 0x0E, 00, 00, // 画像データ部分縦方向サイズ解像度
00, 00, 00, 00, // パレット数
// 12バイト(コード下部の画素の合計バイトと一致)
00, 00, 00, 00, // 重要な色数
0xC4,
0x0E,
00,
00, // 横方向の解像度
0xC4,
0x0E,
00,
00, // 縦方向の解像度
00,
00,
00,
00, // パレット数
00,
00,
00,
00, // 重要な色数
// ここから画像
 
// カラーパレット
00, 00, 00, 00, // 0
00, 00, 0x80, 00, // 1
00, 0x80, 00, 00, // 2
00, 0x80, 0x80, 00, // 03
0x80, 00, 00, 00, // 4
0x80, 00, 0x80, 00, // 5
0x80, 0x80, 00, 00, // 6
0x80, 0x80, 0x80, 00, // 17
0xC0, 0xC0, 0xC0, 00, // 8
00, 00, 0xFF, 00, // 9 赤
0x80,
00, 0xFF, 00, 00, // A 緑
00, 0xFF, 0xFF, 00, // 2B
0xFF, 00, 00, 00, // C 青
0xFF, 00, 0xFF, 00, // D 計算上は紫だが実際はピンク
0x80,
0x800xFF, 0xFF, 00, 00, // E
0xFF, 0xFF, 0xFF, 00, // 3F 白
0x80,
00,
00,
00, // 4
0x80,
00,
0x80,
00, // 5
0x80,
0x80,
00,
00, // 6
0x80,
0x80,
0x80,
00, // 7
0xC0,
0xC0,
0xC0,
00, // 8
00,
00,
0xFF,
00, // 赤 9
00,
0xFF,
00,
00, // 緑 A
00,
0xFF,
0xFF,
00, // B
0xFF,
00,
00,
00, // 青 C
0xFF,
00,
0xFF,
00, // 計算上は紫だが実際はピンク D
0xFF,
0xFF,
00,
00, // E
0xFF,
0xFF,
0xFF,
00, // 白 F
 
//画素
0xBB, 0xBB, 0xB0, 00, // 4バイトなのは偶然
0xBB,
0xBB, 0xBB, 0xB0, 00, 0xBB, 0xbb, 0xB0, 00,
0xB0,
00, // 4バイトなのは偶然
0xBB,
0xBB,
0xB0,
00,
0xBB,
0xbb,
0xB0,
00,
};
fwrite(buf, sizeof *buf, sizeof buf / sizeof *buf, fp1);