PICASSOアプリケーションのビットマップオブジェクトに対する操作について

ビットマップのビット空間に対してメモリの直接読み書きを行って高速に描画を行う。
・Windows標準関数による方法
COLORREF crefGetColor;
crefGetColor = GetPixel( hDC, iX, iY );
SetPixel( hDC, iX, iY, RGB( 128, 128,128 ) );
上記の2個の関数は遅い。同じ処理で2秒くらいかかる。
・高速で読み書きする方法
同じ処理で0.1秒くらいかかる。
128 x 128 サイズの256色ビットマップの場合
uint8 *pBits;
uint8 byCode;
// 画像データメモリ配列の先頭アドレスを取得
pBits  = (uint8_t *)pBmpObj->GetBits();
*pBits = 1; // 1番のパレットコードを設定
byCode = *pBits; // パレットコードを取得
・メリット
ビットマップオブジェクトの実メモリ空間に対する直接の読み書きは非常に高速に処理される。
・デメリット
誤って書き込んではいけない領域にメモリを書き込む問題が発生する場合有り。



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です