部分編集でプログラム本体みれるよ
表示については無視しといて

<stdio.h>
main() {
 FILE *fp2;
 char h[]={0x42,0x4d,0x46,0x42,0x4d,0x46,0x0,0x0,0x0,0x0,0x36,0x0,0x0,0x0,0x28,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x18,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x13,0xb,0x0,0x0,0x13,0xb,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0};
 int c;
 int i;
 fp2 = fopen("mypic.bmp","w");
 h[0x36+0]=0x0;
 h[0x36+1]=0xff;
 h[0x36+2]=0xff;
 h[0x36+3+0]=0xff;
 h[0x36+3+1]=0xff;
 h[0x36+3+2]=0xff;
 h[0x36+8+0]=0xff;
 h[0x36+8+1]=0xff;
 h[0x36+8+2]=0xff;
 h[0x36+8+3+0]=0xff;
 h[0x36+8+3+1]=0xff;
 h[0x36+8+3+2]=0xff;  h[0x36+8+3++1]=0xff;
 for (i=0; i<70; i++) fputc(h[i],fp2);  h[0x36+8+3++1]=0xff;
 fclose(fp2);
}

/


0x42,0x4d,0x46,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x36,0x0,0x0,0x0,0x28,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1,0x0,0x18,0x0,0x0,0x0,0x0,0x0,0x10,0x0,0x0,0x0,0x13,0xb,0x0,0x0,0x13,0xb,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0

以上が、2×2画像ですべてが黒の画像の実際のデータ。
以下解説

※サイズなどのデータは右から左に読む

ファイルヘッダ:BITMAPFILEHEADER 14byte
0x42,0x4d, ファイルタイプ 常にBM(0x42,0x4d)(マジックナンバー)
0x46,0x0,0x0,0x0, ファイルサイズ ビットマップファイルのサイズを格納する(単位はバイト)。(ここを編集)
0x0,0x0, 予約領域1 常に0
0x0,0x0, 予約領域2 常に0
0x36,0x0,0x0,0x0, オフセット ファイルヘッダの先頭アドレスからビットマップデータの先頭アドレスまでのオフセット(単位はバイト)。

情報ヘッダ:BITMAPINFOHEADER 40byte
0x28,0x0,0x0,0x0, ヘッダサイズ 40
0x2,0x0,0x0,0x0, ビットマップの横幅 単位はピクセル(ここを編集)
0x2,0x0,0x0,0x0, ビットマップの縦幅 単位はピクセル(ここを編集)
0x1,0x0, プレーン数 常に1
0x18,0x0, 1ピクセルあたりのビット数 0,1,4,8,16,24,32 通常24ビットなので0x18
0x0,0x0,0x0,0x0, 圧縮形式 0,1,2,3,4,5 無圧縮は0
0x10,0x0,0x0,0x0, 画像データサイズ 単位はバイト(ここを編集)
0x13,0xb,0x0,0x0, 水平方向の解像度 単位はピクセル/m
0x13,0xb,0x0,0x0, 垂直方向の解像度 単位はピクセル/m
0x0,0x0,0x0,0x0, 使用する色数 ビットマップで実際に使用するカラーパレット内のカラーインデックスの数。
0x0,0x0,0x0,0x0, 重要な色数 ビットマップを表示するために必要なカラーインデックスの数。

画像データ
※ここから
0x0,0x0,0x0, (1,1)BGR(右からRGB)
0x0,0x0,0x0, (2,1)BGR
0x0,0x0, ゴミ
※ここまででバイト数を4の倍数にする。以降同様。
0x0,0x0,0x0, (1,2)BGR
0x0,0x0,0x0, (2,2)BGR
0x0,0x0 ゴミ

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2013年01月21日 15:33