id2d1位图的问题

Problems with ID2D1bitmap

本文关键字:问题 位图 id2d1      更新时间:2023-10-16

我试图保存一个ID2D1bitmap到一个文件根据这个如何保存ID2D1bitmap到PNG文件

这可以在windows 7中完成吗?没有任何平台更新?

我得到一个未处理的异常。(访问违规读取)at:

if (SUCCEEDED(hr))
{
    hr = m_pWICFactory->CreateBitmap(
        sc_bitmapWidth,
        sc_bitmapHeight,
        GUID_WICPixelFormat32bppPBGRA,
        WICBitmapCacheOnLoad,
        &pWICBitmap
        );
}

我已经声明m_pWICFactory &m_pDirect2dFactory:

ID2D1Factory* m_pDirect2dFactory;
IWICImagingFactory *m_pWICFactory;
谁能给我解释一下这个问题吗?

我很确定你有一个空的m_pWICFactory(因为你链接到的帖子不包含该代码)。在使用前是否先初始化它?它通常通过像so这样的成员函数完成,并在执行其他需要工厂的操作之前调用。

HRESULT CreateDeviceIndependentResources()
{
    HRESULT hr;
    // Create a Direct2D factory.
    hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &m_pDirect2dFactory);
    if (SUCCEEDED(hr))
    {
        // Create a WIC factory.
        CoCreateInstance(
            CLSID_WICImagingFactory,
            NULL,
            CLSCTX_INPROC_SERVER,
            IID_IWICImagingFactory,
            reinterpret_cast<void **>(&m_pWICFactory)
            );
    }
    return hr;
}

有关详细信息,请参阅在MSDN中使用Windows映像组件。