私はプログラムをC++ gdi gdi +で書いています。 gdi +ビットマップの大きな画像を描画するのが遅いのは、gdi + apiを使用していることです。 だから私は描画するには、次の方法を使用:はGDI +ビットマップオブジェクトで描画できません
Bitmap img(xxx);
Graphics gr(&img);
HDC dc = gr.GetHDC();
::StretchDIBits(
dc,
rec.left, rec.top,
(rec.right - rec.left), (rec.bottom - rec.top),
m_recRegin.left , m_recRegin.top,
m_recRegin.right - m_recRegin.left, m_recRegin.bottom - m_recRegin.top,
XXX, XXX, DIB_RGB_COLORS, SRCCOPY);
gr.ReleaseHDC(dc);
このコードは完全にいくつかの時間を実行します。 しかし、システム全体のプールがいっぱいになるのは、大きなサイズのCBitmapで互換性のある多数のDCを作成する場合です。ビットマップには何も描画できないようです。
どうしましたか?コードのこの部分が失敗したとき、私はまだGDI +のAPI
のGetLastError()の戻りを使用してグラフィック上に描画することができます8.
多くの感謝!
StretchDIBits()の呼び出し後にGetLastError()によって返された値で私たちを更新してください。 – arul