ブログ

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の部分を黒で表示しています。

ビットマップファイルは汎用性の高いフォーマットで、細かい設定が可能であるため、このようにアプリケーションによって見え方が変わる場合があります。

ビットマップフォントのフォーマットについてご質問・ご相談などございましたら、お気軽にお問い合わせください。

カルチスタッフ

関連記事

カルチ発行書籍

  1. KEISコードブック_表紙
    2016年1月15日にKEISコードブックを発売しました。
ページ上部へ戻る