0

これは、アプリケーションに画像をロードするために現在行っていることです。

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パラメータをいじってみましたが、その方法で作成されたディブは正しくありませんでした。

4

1 に答える 1