私は、PDFドキュメントのページを「平坦化」するために使用しているアルゴリズムに問題があります。物理メモリではなくディスク上のCreateDibSection
HBITMAP hbmp = CreateDibSection(...);
ThirdPartyBmpManipulation(hbmp, "C:\\file.pdf", 0); //renders page 0 in file.pdf
void * hdib = ConvertBitmap(hbmp); //copy a Dib Section to a Dib
DeleteObject(hbmp); //frees the HBitmap while the Dib is now in memory
問題は、私は本当に大きなビットマップを持っていると私はにコピーするDIBを割り当てながら、いくつかのケースでは、私はメモリ内のHBITMAPを維持することはできませんです。
だから私は長時間の撮影ですが、何とかDibセクションをディスクに割り当てても、それにはHBITMAPがありますか? (ConvertBitmap関数と同じハンドルを使用)
いい質問のようです。私は答えを知ることに興味があります。しかし、なぜ古いWindows APIを使っているのですか?それは本当に古いです。なぜGDI +を使用しないのですか? – Rafid
@Promather GDI +はGDIのラッパーで、実際には遅くなります;-) –
Hmmm ....私はあなたに同意しません。 GDI +は、Windows Vistaと7でグラフィックスアクセラレーションを使用し始めた全く新しいものです。私は正しいのですか、物事を混ぜるのですか?とにかく、たとえ速度が遅いとしても、ハードドライブからビットマップを読み書きすることを容易にするより良い構造を持つかもしれません。 – Rafid