9.122023
7.BMPファイルのアプリによる表示の違いについて
こんにちは、カルチスタッフです。
前回まで、Windowsで標準的に使われる画像ファイルである、ビットマップファイルについて説明してきました。
最後に、ビットマップファイルをアプリで表示させる場合の違いについて触れてみたいと思います。
下記は、Unicode0x7530「田」の文字を表すビットマップファイルを用意しました。
このファイルを例に、Windowsに標準搭載されているアプリである「フォト」と「ペイント」での表示の違いについて見ていきます。
左がフォトで見た場合。右がペイントで見た場合。
フォトで見た場合は、線が青で表示されていますが、ペイントの場合は線が黒になってしまっています。
次にこのビットマップファイルのフォーマットを見てみましょう。
①ファイルヘッダ
項目 | サイズ | 値 | 内容 |
タイプ | 2 | 0x4D42 | 固定値 |
サイズ | 4 | 0x0000007E | ファイルサイズ(byte) |
予約領域 | 2 | 0x0000 | 0 |
予約領域 | 2 | 0x0000 | 0 |
オフセットビット | 4 | 0x0000003E | 画像データ先頭までのオフセット |
- サイズ:
ファイルヘッダサイズ[14byte]+
情報ヘッダサイズ[40byte]+
カラーテーブルサイズ[4byte*2]+
画像データサイズ[(横byte数)4byte*(縦byte数)16byte]=
14byte+40byte+8byte+64byte=126=0x7E
- オフセットビット:
ファイルヘッダサイズ[14byte]+
情報ヘッダサイズ[40byte]+
カラーテーブルサイズ[4byte*2]+
14byte+40byte+8byte=62byte=0x3E
②情報ヘッダ
項目 | サイズ | 値 | 内容 |
情報ヘッダのサイズ | 4 | 0x00000028 | 固定値:40 |
画像の幅 | 4 | 0x00000010 | ピクセルで指定 |
画像の高さ | 4 | 0x00000010 | ピクセルで指定 |
プレーン数 | 2 | 0x0001 | 固定値:1 |
ビットカウント | 2 | 0x0001 | 1:2色 |
圧縮形式 | 4 | 0x00000000 | 固定値:0(無圧縮) |
画像データのサイズ | 4 | 0x00000040 | 【④画像データ】のByte数 |
横解像度 | 4 | 0x00000EC4 | 固定値:3780(96dpi) |
縦解像度 | 4 | 0x00000EC4 | 固定値:3780(96dpi) |
パレット数 | 4 | 0x00000000 | 固定値:0 |
パレットインデックス | 4 | 0x00000000 | 固定値:0 |
- 画像データのサイズ
横byte数×縦byte数=4byte×16byte=64byte=0x40
③カラーパレット
項目 | サイズ | 値 | 内容 |
カラーパレット0 | 4 | 0xFF000000 | ビット0の時は青色 |
カラーパレット1 | 4 | 0xFFFFFF00 | ビット1の時は白色 |
④画像データ
③のカラーパレット0の値をFF000000にすることで、ビット0の部分を青色で表示するようにしてみました。
フォトでは、カラーパレットを参照して、ビット0の部分を青色で表示していますが、ペイントでは、ビッド0の部分を黒で表示しています。
ビットマップファイルは汎用性の高いフォーマットで、細かい設定が可能であるため、このようにアプリケーションによって見え方が変わる場合があります。
ビットマップフォントのフォーマットについてご質問・ご相談などございましたら、お気軽にお問い合わせください。
カルチスタッフ