标签: wic

在XP中安装.Net 4之前的VS 2010 BootStrapper for WIC(Windows Imaging Component)

我已经在VS 2010中为我的.Net 4应用程序创建了一个设置和部署项目.在我的先决条件中,我已经检查过.Net4先决条件但我已经了解到.Net4已经省略了WIC(Windows Imaging Component)以使其变得轻松.

当我在Vista/Win7中运行我的设置时,Net4安装不会给WIC带来错误,但是当我在XP中安装它时,它会给WIC带来错误.然后我必须先手动安装WIC然后运行我的设置.

我需要一个WIC的引导程序,它在XP中安装.Net4之前运行.请建议如何完成或链接.提前致谢.

.net wic bootstrapper setup-deployment visual-studio-setup-proje

2
推荐指数
1
解决办法
3504
查看次数

Windows Imaging Component的版本

如何查看Windows计算机上安装的Windows映像组件版本?我怀疑Azure中使用的Windows 2008 Server与我在Windows 7开发机器上的版本不同.我只想验证我需要最新的TIFF编解码器.

tiff imaging wic azure libtiff.net

2
推荐指数
1
解决办法
991
查看次数

如何将 IWICBitmapSource 转换为 HBITMAP?

使用工厂方法可以很容易地从 HBITMAP 生成 IWICBitmap CreateBitmapFromHBITMAP。但是如何从 IWICBitmapSource 获取简单的 GDI 位图呢?

c++ windows winapi wic

2
推荐指数
1
解决办法
3226
查看次数

Windows API从文件渲染图像(初学者)

我试图了解如何使用Windows API,Direct2D和Visual C++从文件加载和呈现图像.我或多或少地试图关注有关此主题的MSDN文章.我是C++(在C中经验丰富)和Windows API的新手.

我写了3个函数.

HRESULT imagefactorysetup(IWICImagingFactory * pImageFactory)
{
    HRESULT hr = CoCreateInstance(CLSID_WICImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_IWICImagingFactory, (LPVOID *) &pImageFactory);

    return hr;
}

HRESULT imageload(LPCWSTR filename, IWICImagingFactory * pImageFactory, IWICBitmapFrameDecode * pFrame)
{
    IWICBitmapDecoder * pDecoder = NULL;
    HRESULT hr = pImageFactory->CreateDecoderFromFilename(filename, NULL, GENERIC_READ, WICDecodeMetadataCacheOnLoad, &pDecoder);

    if (SUCCEEDED(hr))
        hr = pDecoder->GetFrame(0, &pFrame);

    //Format convert the frame to 32bppPBGRA
    IWICFormatConverter * pFormatConverter = NULL;
    if (SUCCEEDED(hr))
    {
        SafeRelease(&pFormatConverter);
        hr = pImageFactory->CreateFormatConverter(&pFormatConverter);
    }

    if (SUCCEEDED(hr))
        hr = pFormatConverter->Initialize(pFrame, GUID_WICPixelFormat32bppPBGRA, WICBitmapDitherTypeNone, …
Run Code Online (Sandbox Code Playgroud)

c++ winapi wic direct2d

1
推荐指数
1
解决办法
2794
查看次数

使用WIC(Windows镜像组件)遇到的问题

最近在用WIC解析GIF。代码写好了,在win10和win7上都可以完美运行,但是在WinXP上就失败了。排除了半天,终于在这行代码上找到原因:

// pBitmapFrameDecode is an IWICBitmapFrameDecode
hr = pBitmapFrameDecode->GetMetadataQueryReader(&pFrameMetadataQueryReader);
if (hr == WINCODEC_ERR_UNSUPPORTEDOPERATION) MessageBoxA(NULL, "WINCODEC_ERR_UNSUPPORTEDOPERATION", "Error!", MB_OK);

Run Code Online (Sandbox Code Playgroud)

在这行代码中,GetMetadataQueryReader失败了,它会导致GetMetadataByName以下代码中的失败。觉得很奇怪,就查了MSDN。 IWICBitmapFrameDecode::GetMetadataQueryReader

但是我发现我的 XP 电脑符合 MSDN 编写的最低配置要求(SP3)。更奇怪的是,该函数返回WINCODEC_ERR_UNSUPPORTEDOPERATION. 这太奇怪了。一开始,我以为是我自己的设备问题,所以我借了几台XP电脑,在上面运行我的代码。他们都回来了WINCODEC_ERR_UNSUPPORTEDOPERATION。MSDN有错吗?

c c++ windows winapi wic

1
推荐指数
1
解决办法
231
查看次数