0

レガシ アプリケーションのビューは、StretchDIBits を使用して画像を表示しています。StretchDIBits に慣れていない場合は、MFC ビューで特定のサイズの画像を別のサイズに表示するために使用されます。たとえば、サイズ (128,120) の画像は、関数を使用して (512,512) に表示できます。

ディスプレイの幅または高さが画像の倍数である単純な条件では、ディスプレイの位置から元の画像のピクセルの位置を問題なく計算できます。しかし、それ以外の場合、特に2つのサイズの間に倍数がない場合、StretchDIBitsが元の画像から指定されたサイズの長方形を表示するためにピクセルをどのように分配するかを知る必要があると思います.

4

1 に答える 1

1

StretchDIBits が入力ピクセルを出力ピクセルにどのようにマップするかはわかりませんが、とにかく Microsoft の気まぐれで変更される可能性があると思います。

入力と同じサイズの画像を作成し、ピクセルを増分値で埋めます: (0,0) は RGB(0,0,0) を取得し、(0,1) は RGB(0,1,0) を取得し、(10) ,20) RGB(10,20,0) などを取得します。出力と同じサイズのメモリ DC を作成し、StretchDIBits を使用してイメージを描画します。これで、その DC 内のすべてのピクセルを、含まれる色によって入力にマップし直すことができます。

于 2012-02-16T20:14:58.907 に答える