ビットマップの操作の基礎

Flash Player 9 以降、Adobe AIR 1.0 以降

デジタルイメージを操作する際、主なグラフィックタイプにはビットマップとベクターがあります。ビットマップグラフィックは、ラスターグラフィックとも呼ばれ、矩形のグリッドに配列された小さな正方形(ピクセル)によって構成されます。 ベクターグラフィックは、直線、曲線、ポリゴンなど、数学的に生成された幾何学図形によって構成されます。

ビットマップイメージはイメージの幅と高さによって定義され、ピクセル単位と 1 ピクセルあたりのビット数(1 ピクセルあたりの色数)で表されます。 RGB カラーモデルを使用するビットマップイメージの場合、ピクセルは赤、緑、青の 3 バイトで構成されます。 各バイトは、0 から 255 までの値になります。ピクセルの中でバイトを組み合わせることにより、画家が絵の具を混ぜ合わせるのと同じような形で色が生成されます。 例えば、ピクセルのバイト値が赤 255、緑 102、青 0 であれば、鮮やかなオレンジ色が生成されます。

ビットマップイメージの品質は、イメージの解像度と、色深度のビット値を組み合わせることによって決定されます。 解像度とは、1 つのイメージに含まれるピクセル数を指します。 ピクセル数が大きいほど解像度が高くなり、イメージが精細に表示されます。 色深度とは、1 つのピクセルが格納できる情報量を指します。 例えば、色深度値がピクセルあたり 16 ビットのイメージは、色深度が 48 ビットのイメージと同じ数の色を表現することはできません。 その結果、48 ビットのイメージの方が 16 ビットのイメージよりもスムーズな階調を示すことができます。

ビットマップグラフィックは解像度に依存するので、効果的に拡大/縮小することができません。これは、ビットマップを拡大すると特に顕著です。 ビットマップイメージを拡大すると細部が失われ、品質が劣化します。

ビットマップファイル形式

ビットマップイメージは、いくつかの一般的なファイル形式に分けられます。 これらの形式は、それぞれに異なる圧縮アルゴリズムによってファイルサイズを縮小すると共に、イメージの最終用途に応じて画質を最適化します。 Adobe ランタイムが対応しているビットマップイメージ形式は、BMP、GIF、JPG 、PNG および TIFF です。

BMP

Microsoft Windows オペレーティングシステムが使用するデフォルトのイメージ形式は、BMP(ビット マップ)形式です。どのようなフォームの圧縮アルゴリズムも使用しないため、通常、結果のファイルサイズは大きくなります。

GIF

Graphics Interchange Format(GIF)は、256 色、つまり 8 ビットカラーのイメージを伝送するために、1987 年に CompuServe 社によって開発されました。この形式はファイルサイズが小さいので、Web ベースのイメージには最適です。 GIF のカラーパレットには限界があるので、GIF イメージは通常は写真に適していません。写真は、細かな階調やカラーグラデーションを必要とするからです。GIF イメージは単独ビットの透明度にも対応しているので、カラーを透明としてマッピングすることもできます。 これにより、透明度がマッピングされたイメージを透過して Web ページの背景を表示することができます。

JPEG

Joint Photographic Experts Group(JPEG)によって開発された JPEG(または JPG)イメージ形式は非可逆圧縮アルゴリズムを使用し、小さいファイルサイズで 24 ビット色深度を実現することができます。非可逆圧縮では、イメージを保存するたびに品質とデータが失われますが、ファイルサイズを小さく抑えることができます。 JPEG 形式では何百万もの色を表示できるので、写真に最適です。 イメージに適用される圧縮の度合いを制御できるので、イメージの品質とファイルサイズを操作することができます。

PNG

Portable Network Graphics(PNG)形式は、特許を取得した GIF ファイル形式のオープンソース代替形式として開発されました。PNG は最大で 64 ビットの色深度に対応しているので、最大で 1,600 万色を表示することができます。 PNG は比較的新しい形式なので、一部の古いブラウザーでは PNG ファイルをサポートしていません。JPG とは違い、PNG は可逆圧縮を使用します。つまり、イメージが保存されても、イメージデータは失われません。 PNG ファイルは、最大で 256 レベルの透明度に対応する、アルファ透明度もサポートしています。

TIFF

PNG が導入される前は、クロスプラットフォーム用の形式は Tagged Image File Format(TIFF)でした。TIFF 形式の短所は、TIFF に多くの種類が存在するために、すべてのバージョンを処理できる単一のリーダーがないということです。また、現在のところ、Web ブラウザーもこの形式をサポートしていません。TIFF は、非可逆圧縮または可逆圧縮のいずれかを使用しており、デバイス固有の色空間(CMYK など)を処理することができます。

透明なビットマップと不透明なビットマップ

GIF または PNG 形式を使用するビットマップイメージでは、各ピクセルに追加バイトとしてアルファチャンネルが付与されます。 この追加バイトは、ピクセルの透明度の値を表します。

GIF イメージは単独ビットの透明度に対応しているので、256 色のカラーパレットの中から 1 色を指定し、その色を透明にすることができます。 一方 PNG イメージでは、最大で 256 レベルの透明度に対応しています。 この機能は、イメージやテキストを背景と混ぜ合わせる場合に特に有効です。

ActionScript 3.0 は、追加された透明度ピクセルバイトを BitmapData クラス内に複製します。 PNG 透明度モデルと同様に、ActionScript は最大で 256 レベルの透明度を実現します。

重要な概念と用語

次に、ビットマップグラフィックに関する説明で使用される重要な用語を示します。

アルファ
色またはイメージの透明度(正確には不透明度)のレベルです。 多くの場合、アルファの値は、アルファチャンネル値として示されます。

ARGB カラー
各ピクセルの色を、赤、緑、青を混合したカラー値として示すカラースキームです。透明度はアルファ値として指定されます。

カラーチャンネル
通常、色は基本色を混ぜ合わせることで表示されます。コンピューターグラフィックでは、通常は赤、緑、青です。基本色はそれぞれカラーチャンネルとして見なされます。各カラーチャンネルが混ぜ合わされる量により、最終的な色が決定されます。

色深度
ビット深度とも呼ばれます。1 ピクセルに使用されるコンピューターメモリを示します。つまり、イメージで表示できる色の数を決定します。

ピクセル
ビットマップイメージの最小情報単位、つまり色のドットです。

解像度
イメージのピクセルサイズで、これによりイメージの詳細さが決定します。 解像度は、ピクセルの幅と高さによって表現されます。

RGB カラー
各ピクセルの色が赤、緑、青のカラー値で表示されるカラースキームです。