- //1初始化IWICImagingFactory
- IWICImagingFactory *pIWICFactory;
- CoInitialize(NULL);
- CoCreateIstance(
- CLSID_WICImagingFactory,
- NULL,
- CLSCTX_INPROC_SERVER,
- IID_PPV_ARGS(&pIWICFactory)
- );
- ID2D1Bitmap *pBitmap;
- IWICBitmapDecoder *pDecoder;
- IWICBitmapFrameDecode *pSource;
- IWICStream *pStream;
- IWICFormatConverter *pConverter;
- IWICBitmapScaler *pScaler;
- //2初始化IWICBitmapDecoder
- pIWICFactory->CreateDecoderFromFilename(
- "filename", //修改为图片的路径名
- NULL,
- GENERIC_READ,
- WICDecodeMetadataCacheOnload,
- &pDecoder
- );
- //3初始化IWICBitmapFrameDecode
- pDecoder->GetFrame(0, &pSource);
- //4初始化IWICBitmapScaler
- pIWICFactory->CreateBitmapScaler(&pScaler);
- pScaler->Initialize(
- pSource,
- width, //缩放至width宽度
- height, //缩放至height高度
- WICBitmapInterpolationModeCubic
- );
- //4初始化IWICFormatConverter
- pIWICFactory->CreateFormatConverter(&pConverter);
- pConverter->Initialize(
- pScaler,
- GUID_WICPixelFormat32bppPBGRA,
- WICBitmapDitherTypeNone,
- NULL,
- 0.0f,
- WICBitmapPaletteTypeMedianCut
- );
- //5从WIC中加载位图
- pRenderTarget->CreateBitmapFromWicBitmap(
- pConvert,
- NULL,
- &pBitmap
- );
- //6释放临时对象
- XXXXX->Release();