先日ホームページでも予告致しました通り、6月2日(土)にサーバーの切り替えを何とか終了しました。
当初ホームページが表示されない問題がありましたが、現在は、解決致しました。

サーバーの切り替えに伴い、こちらの外部ブログも、新しいサーバー内に移設致しました。
ですので、今後はホームページ内のブログをご利用ください。
こちらのブログは、しばらくはこのまま残しておこうと思います。
現状のホームページは、今までと変わり映えしませんが、今後はどんどん更新して充実するように努力して行きます。
AVAILのホームページはこちら。

[ 1 ] のコードで 四角ツールを使用して 10 x 10 を描画します。
描画した 10 x 10 の範囲を選択します。
1x1_Tool_00


ツールバーの [ 1x1 Tool ] をクリックします。
以下のように選択範囲が展開されます。
1x1_Tool_02


展開する処理ではビットマップオブジェクトに対して直接メモリにアクセスしています。
その方が高速に処理できます。

ビットマップのビット空間に対してメモリの直接読み書きを行って高速に描画を行う。

・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; // パレットコードを取得

・メリット
ビットマップオブジェクトの実メモリ空間に対する直接の読み書きは非常に高速に処理される。

・デメリット
誤って書き込んではいけない領域にメモリを書き込む問題が発生する場合有り。

↑このページのトップヘ