メモリにある BMP (HBITMAP または CImage として保存) を取得し、ディスク上の PNG ファイルに保存する必要があります。
現在、画像をpngとして保存する方法は次のとおりです。CImage img; img.Save("foo.png")
私の問題は、それが遅すぎることです(〜1920X1080で250ms)。これには、JPG として保存する場合の 3 倍の時間がかかり、BMP として保存する場合の約 9 倍の時間がかかります。
これを行うLinux用のg ++ライブラリ(libpngなど)がたくさんあることは知っていますが、ビジュアルスタジオをサポートするライブラリのほとんどはバージョン6のみをサポートしており、ベンチマークのあるものを見つけていないので、ちょっとこれらのライブラリを動作させようとするのをためらって、遅すぎることがわかりました。
どのタイプのエンコーダー ウィンドウが使用されているかはわかりませんが (DLL に隠されています)、より高速なエンコーダーが必要です (ディスク サイズを少し犠牲にして、最大で 2 倍まで増やしても構わないと思っています)。
Java ライブラリはこれを非常に迅速に行いますが、何らかの理由で Microsoft のライブラリは亀のように遅いです。
画面サイズのPNGを約100ミリ秒でディスクに保存するためのオプションは何ですか?