2006 年 1 月 16 日 23 時 35 分

BMP フォーマット解説と簡単フォトレタッチ


このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。


お題は、「BMP フォーマット解説と簡単フォトレタッチ」で。

これから、画像形式としての BMP (Bitmap) について、
色々と書いていこうと思う。
内容はぜんぜん決めてないので、コメント歓迎。
それによって書く方向も変えていこうと思う。


最近のプログラミングにはフレームワークの層がある。
ネットワークにも層があるように。

プログラミング言語にも高級や低級の差があるが、
フレームワークやライブラリによってもその差がある。

最近の Windows の場合、OS カーネルの API 層があり、
その上に SHELL や USER や GDI などの API があり、
その上に MFC や GDI+、.Net Framework などがある。

上位の層ほど充実したサービスを提供してくれるので、
通常はそれらを利用した開発を行うことが多いだろう。
工期が短くて済むからだ。(デバッグが大変な場合もあるが)

しかし、それらには短所もある。
当たり前だが、それら層がないと実行できないこと、
そして、実行オーバヘッドと環境依存性だ。

今回、あえてファイルフォーマットを扱う理由は、
究極の最下層プログラミングであり、「極限」だから。

バイトの集合体であるファイルを直接扱うのは、
環境が贅沢でない組み込みシステムや、
PurePerl しか使えない Web サーバでも利用できる。
必要なことを必要最低限のオーバヘッドで実現できる。


さて、お題に戻ろう。
Bitmap は、Windows 標準の 2 次元画像のことだが、
いくつかの意味を持っている。

ややこしいので、今後単に Bitmap と言う場合、
「直接読み書きできる 2 次元画像のデータ構造」
という意味を表すこととする。
なお、「Windows 標準の 2 次元画像ファイル形式」は、
「BMP」とか「BMP ファイル」と呼ぶことにする。

Bitmap は基本的に圧縮なしなので、構造が単純。
Windows では標準形式として随所で利用されてる。
そのため、Web 探せばいくらでも情報が見つかる。
だから、ここでは他にはない変わったことをしてみよう。

次回以降、あえて Perl で BMP を取り扱ってみようかな。



Copyright (c) 1994-2007 Project Loafer. All rights reserved.