<Return[S]><Top>

StretchDIBits

Declare Function Api_StretchDIBits& Lib "gdi32" Alias "StretchDIBits" (ByVal hDC&, ByVal x&, ByVal y&, ByVal dx&, ByVal dy&, ByVal SrcX&, ByVal SrcY&, ByVal wSrcWidth&, ByVal wSrcHeight&, lBits As Any, lpBitsInfo As BITMAPINFO, ByVal wUsage&, ByVal dwRop&)

Declare Function StretchDIBits Lib "gdi32" Alias "StretchDIBits" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dx As Long, ByVal dy As Long, ByVal SrcX As Long, ByVal SrcY As Long, ByVal wSrcWidth As Long, ByVal wSrcHeight As Long, lpBits As Any, lpBitsInfo As BITMAPINFO, ByVal wUsage As Long, ByVal dwRop As Long) As Long

指定されたデバイス独立ビットマップ(DIB)内の長方形ピクセルの色データを、指定された長方形へコピーする。コピー先長方形がコピー元長方形より大きい場合、この関数はコピー先長方形に合わせて、色データの行と列を拡大する。コピー先長方形がコピー元長方形より小さい場合、この関数は指定されたラスタオペレーションを使って、行と列を縮小する。

パラメータ
hdc
    コピー先のデバイスコンテキストのハンドルを指定する。
XDest
    コピー先長方形の左上隅の x 座標を論理単位で指定する。
YDest
    コピー先長方形の左上隅の y 座標を論理単位で指定する。
nDestWidth
    コピー先長方形の幅を論理単位で指定する。
nDestHeight
    コピー先長方形の高さを論理単位で指定する。
XSrc
    DIB 内のコピー元長方形の左上隅の x 座標をピクセル単位で指定する。
YSrc
    DIB 内のコピー元長方形の左上隅の y 座標をピクセル単位で指定する。
nSrcWidth
    DIB 内のコピー元長方形の幅をピクセル単位で指定する。
nSrcHeight
    DIB 内のコピー元長方形の高さをピクセル単位で指定する。
lpBits
    DIB の色データを保持しているバイト配列へのポインタを指定する。
lpBitsInfo
    DIB の情報を保持している 1 個の 構造体へのポインタを指定する。
iUsage
    BITMAPINFO 構造体の bmiColors メンバを設定したかどうかを指定する。設定した場合は、bmiColors メンバは RGB 値かパレットインデ

    ックスのどちらかである。次の値のいずれかを指定する。

    値                              

意味                                                                                                            

    DIB_PAL_COLORS

 

カラーテーブルは、コピー先デバイスコンテキストの論理パレットに関連する 16 ビットのインデックス番号からなる配列である。

    DIB_RGB_COLORS

カラーテーブルは、RGB 値そのものである。

dwRop
    ラスタオペレーションコードを指定する。ラスタオペレーションコードは、新しいイメージを形成するために、コピー元のピクセル、コピー先のデバ

    イスコンテキストの現在のブラシ、コピー先のピクセルを組み合わせる方法を定義する。

戻り値
    関数が成功すると、コピーされた走査行の数が返る。
    関数が失敗すると、GDI_ERROR が返る。
    Windows NT/2000:拡張エラー情報を取得するには、 関数を使う。
    Windows 98 と Windows 2000:JPEG または PNG ファイルを StretchDIBits に渡したとき、ドライバがそれらのイメージをサポートできない

    場合は、この関数は失敗し、GDI_ERROR を返す。このような失敗が発生した場合、アプリケーションは JPEG または PNG をサポートす

    る機能へのフォールバックを行って、そのイメージを圧縮解除してビットマップへ変換し、そのビットマップを StretchDIBits に渡さなければなら

    ない。

解説
    ボトムアップの DIB の原点は、ビットマップの左下隅である。トップダウンの DIB の原点は、ビットマップの左上隅である。
    StretchDIBits 関数は、nSrcWidth と nDestWidth の各パラメータの符号、または nSrcHeight と nDestHeight の各パラメータの符号が

    異なる場合、ビットマップのミラーイメージを作成する。nSrcWidth と nDestWidth の符号が異なる場合、x 軸を中心にしてビットマップのミ

    ラーイメージを作成する。nSrcHeight と nDestHeight の符号が異なる場合、y 軸を中心にしてビットマップのミラーイメージを作成する。