IlvBitmap:ビットマップ・イメージ・クラス
ラスター、またはビットマップ・イメージは、IlvBitmap クラスのインスタンスで表されます。IlvBitmap 使用の詳細については、以下を参照してください。
ビットマップに関連するメンバー関数
ビットマップを処理する特殊なメンバー関数は、IlvDisplay にあります。
ビットマップは多くの場合、異なったオブジェクト間で共有されます。たとえば、同じビットマップを塗りつぶしパターンとしてもそれ自体のイメージとしても使用できます。したがって、ビットマップ・リソースの管理が必要です。これはロック/ロック解除ポリシーで行います。
ビットマップ管理は、ビットマップのロックまたはロック解除方法と緊密に関係しています。永続性オブジェクトの 1 つに特定のビットマップが必要な場合は、必ず以下のメカニズムを使用して、
IlvDisplay インスタンス内で確実に保護する必要があります。
void lock();
IlvBitmap クラスのこのメンバー関数は、オブジェクトが Rogue Wave Views にビットマップの変更、破壊を指示する前に、ビットマップが変更または破壊されないようにします。基本的に、この関数によって、 0 に設定されている初期の参照カウントが増加します。
void unLock();
この関数によって、ビットマップのロックが解除されます。つまり、ビットマップの参照カウントが減少し、カウントが 0 に達するとそのビットマップを削除します。new および delete C++ 演算子による IlvBitmap オブジェクトの作成/削除メカニズムは、共有されていないときに一時的に使用されるビットマップ・オブジェクト用に保持しておきます。
ビットマップ形式
Rogue Wave Views では、さまざまな形式のイメージを含むファイルまたはストリームから IlvBitmap オブジェクトを作成できます。これらの形式は、以下のとおりです。
BMP (すべてのサブタイプ、RLE 、RGB、インデックス付、トゥルー・カラー)。この形式は、Microsoft Windows プラットフォームでよく使用されます。未圧縮。
ポータブル・ネットワーク・グラフィックス (
PNG)。最近よく使用されている形式です。透明領域または色にインデックスを付け、高解像度のトゥルー・カラー・サブタイプを持たせます。
メモ: これは GIF に変わる形式で、特許を必要としません。http://www.libpng.org/pub/png/ を参照してください。 |
ジョイント・フォトグラフィック・エキスパート・グループ (
JPEG) 写真イメージ用に多く使用されている形式です。この形式は「損失が多い」、つまり元の情報が JPEC イメージで失われてしまいます。この形式は、重要な圧縮ファクタをインポートできます。
ポータブル・ピックスマップ (
PPMPGM、
PBM) UNIX プラットフォームでよく使用される形式です。未圧縮で、サイズの大きなファイルを生成します。
WAP ビットマップ (
WBMP) この形式は、携帯電話などの WAP デバイスで使用されます。これはモノクロ形式です。
ビットマップの読み込み:ストリーマー
各ビットマップ形式は、ストリーマー・オブジェクト (クラス
IlvBitmapStreamer) と関連付けられています。
ストリーマーは、コンパイル時または実行時に登録できます。ストリーマーをコンパイル時に登録する場合、この形式用のヘッダー・ファイルが含まれます。
表 4.1 ビットマップ形式のヘッダー・ファイル
ビットマップ形式 | ヘッダー・ファイル |
JPEG | ilviews/bitmaps/jpg.h |
PNG | ilviews/bitmaps/png.h |
BMP | ilviews/bitmaps/bmp.h |
PPM | ilviews/bitmaps/ppm.h |
SGI RGB | ilviews/bitmaps/rgb.h |
TIFF | ilviews/bitmaps/tiff.h |
WBMP | ilviews/bitmaps/wbmp.h |
次に、以下の呼び出しを使用してイメージをビットマップに読み込みます。
IlvBitmap* IlvDisplay::readBitmap(const char* filename);
イメージ・タイプはファイルの署名で認識され、IlvDisplay::readBitmap によって正しいストリーマーが自動的に呼び出されます。
すべてのビットマップ・ストリーマーは動的モジュールです。これは、リーダーまたはライターが必要に応じて動的に読み込まれるということです。そのため、イメージを読み取るまたは書き込むように要求すると、Rogue Wave Views はすべての既知の形式でそれを行います。
ストリーマーはモジュールであり、不明な (または登録されていない) ファイル形式を読み込む場合は、実行時にロードできます。対応するモジュールがある場合は読み込まれ、ストリーマーが登録されます。これはモジュールをサポートするプラットフォームでのみ有効です。
次の形式は常に登録されており、モジュールを必要としません。
XPM
XBM
透明ビットマップの読み込み
IlvTransparentIcon オブジェクトはビットマップとして表示されます。0 値のソース・ビットマップのピクセルは、描画時に宛先ポートに影響しません。通常、ビットマップ・アイコンの透明な領域によって、背景パターンが透けて表示されます。このプロセスは、透明マスクまたは透明色インデックスのあるモノクロ・ビットマップまたはカラー・ビットマップのみで有効です。
Rogue Wave Views では、次のファイル形式から透明ビットマップを読み込めます。
XPM
透明領域はビットマップ記述ファイルで「none」と定義されている領域に一致します。この情報が省略されると、ビットマップは透明アイコンとしては読み込まれません。
PNG
Rogue Wave Views は、PNG ストリームの透明情報を使用して、ビットマップに透明領域を作成します。
Version 5.6
Copyright © 2012, Rogue Wave Software, Inc. All Rights Reserved.