これは、アプリケーションに画像をロードするために現在行っていることです。
auto b = ::FreeImage_Load(type, path.c_str());
void *bits;
auto hbmp = CreateDIBSection(
dc,
FreeImage_GetInfo(bitmap),
DIB_RGB_COLORS,
&bits,
0,
0
);
std::memcpy(bits, FreeImage_GetBits(b), size);
それは非常にうまく機能しますが、メモリを2回割り当てることは避けたいと思います-::FreeImage_Load
すでにdibに適した方法でデータを保存しています. CreateDIBSection
割り当てを防ぎ、その方法で作成されたディブに私が提供したバッファを使用させる呼び出し方法はありますか? そうでない場合、それを可能にする別の方法はありますか?
NULL
代わりに提供すると**ppvBits
割り当てが妨げられるようです - 後でバッファアドレスを変更する方法はありますか? hSection
パラメータをいじってみましたが、その方法で作成されたディブは正しくありませんでした。