StretchDIBits

StretchDIBits 関数は、DIB、JPEG、または PNG 画像のピクセル矩形のカラーデータを指定したコピー先矩形にコピーする。

StretchDIBits hdc, xDest, yDest, DestWidth, DestHeight, xSrc, ySrc, SrcWidth, SrcHeight, lpBits, lpbmi, iUsage, rop

hdc : [intptr] コピー先のデバイスコンテキストへのハンドル。
xDest : [int] コピー先矩形の左上隅の x 座標(論理単位)。
yDest : [int] コピー先矩形の左上隅の y 座標(論理単位)。
DestWidth : [int] コピー先矩形の幅(論理単位)。
DestHeight : [int] コピー先矩形の高さ(論理単位)。
xSrc : [int] 画像内のソース矩形の x 座標(ピクセル単位)。
ySrc : [int] 画像内のソース矩形の y 座標(ピクセル単位)。
SrcWidth : [int] 画像内のソース矩形の幅(ピクセル単位)。
SrcHeight : [int] 画像内のソース矩形の高さ(ピクセル単位)。
lpBits : [intptr] バイト配列として格納された画像ビットへのポインタ。詳細は「解説」セクションを参照。
lpbmi : [var] DIB に関する情報を含む BITMAPINFO 構造体へのポインタ。
iUsage : [int] 
rop : [int] ソースピクセル、コピー先デバイスコンテキストの現在のブラシ、およびコピー先ピクセルをどのように組み合わせて新しい画像を形成するかを指定するラスタ演算コード。一般的なラスタ演算コードの一覧は BitBlt を参照。

(プラグイン / モジュール : gdi32.dll)

解説

StretchDIBits 関数は、DIB、JPEG、または PNG 画像のピクセル矩形のカラーデータを指定したコピー先矩形にコピーする。

[戻り値]

関数が成功した場合、戻り値はコピーされたスキャンラインの数である。この値は鏡像化されたコンテンツに対して負になり得ることに注意。関数が失敗した場合、またはスキャンラインがコピーされなかった場合、戻り値は
0 である。ドライバが StretchDIBits に渡された JPEG または PNG
ファイル画像をサポートできない場合、関数は失敗して GDI_ERROR を返す。失敗した場合、アプリケーションは独自の JPEG または
PNG サポートにフォールバックして画像をビットマップに展開し、そのビットマップを StretchDIBits に渡す必要がある。

[備考]
ボトムアップ DIB の原点は左下隅にあり、トップダウン DIB の原点は左上隅にある。StretchDIBits は、nSrcWidth
と nDestWidth パラメータの符号、または nSrcHeight と nDestHeight
パラメータの符号が異なる場合、ビットマップの鏡像を作成する。nSrcWidth と nDestWidth の符号が異なる場合、関数は x
軸に沿ったビットマップの鏡像を作成する。nSrcHeight と nDestHeight の符号が異なる場合、関数は y
軸に沿ったビットマップの鏡像を作成する。StretchDIBits は、DIB の BITMAPINFOHEADER 構造体の
biHeight メンバの符号が負の場合、トップダウン画像を作成する。コード例は Sizing a JPEG or PNG Image
を参照。この関数は JPEG または PNG
画像をソース画像として渡すことを可能にする。各パラメータの使用方法は同じだが、次の例外がある:
(以下省略)

サンプル逆引き (1)

sample_camera_mf.hsp

情報

プラグイン / モジュールgdi32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の gdi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_gdi32_gen2.hs