C++ 如何获取iWicDevelopPraw接口
我正在使用WIC和Direct2D渲染一张原始照片(sony.arw)。这部分我有工作负载,我可以在屏幕上画出来。我想做的是访问iWicDevelopPraw接口。我假设解码器将实现该接口,因此我尝试:C++ 如何获取iWicDevelopPraw接口,c++,windows,direct2d,wic,C++,Windows,Direct2d,Wic,我正在使用WIC和Direct2D渲染一张原始照片(sony.arw)。这部分我有工作负载,我可以在屏幕上画出来。我想做的是访问iWicDevelopPraw接口。我假设解码器将实现该接口,因此我尝试: Microsoft::WRL::ComPtr<IWICBitmapDecoder> pDecoder; HRESULT hr = m_pWICIMagingFactory->CreateDecoderFromFilename( uri,
Microsoft::WRL::ComPtr<IWICBitmapDecoder> pDecoder;
HRESULT hr = m_pWICIMagingFactory->CreateDecoderFromFilename(
uri,
NULL,
GENERIC_READ,
WICDecodeMetadataCacheOnLoad,
&pDecoder
);
if (SUCCEEDED(hr))
{
Microsoft::WRL::ComPtr<IUnknown> u;
hr = pDecoder.AsIID(IID_IWICDevelopRaw, &u);
if (SUCCEEDED(hr)) {
...
}
}
Microsoft::WRL::ComPtr-pDecoder;
HRESULT hr=m_pWICIMagingFactory->CreateDecoderFromFilename(
乌里,
无效的
泛读,
WicDecodataCacheOnLoad,
&光电编码器
);
如果(成功(hr))
{
微软:WRL::comptru;
hr=pDecoder.AsIID(IID_-IWICDevelopRaw,&u);
如果(成功(hr)){
...
}
}
但是在调用pDecoder.AsIID(IID\u IWICDevelopRaw,&u)之后,
hr
是NO\u接口
,该接口公开图像的属性。因此,您必须从实际的位图对象获取它,而不是解码器。看起来像IWICBitmapSource=>IWICBitmapFrameDecode=>IwicDevelopPraw。谢谢,它确实是帧的一个接口。该接口公开了图像的属性。因此,您必须从实际的位图对象获取它,而不是解码器。看起来像是IWICBitmapSource=>IWICBitmapFrameDecode=>IwicDevelopPraw。谢谢,它确实是框架的一个接口。