Direct2D Intro - Scale a Bitmap Source
来源:互联网 发布:如何克服吊桥效应知乎 编辑:程序博客网 时间:2024/05/16 11:00
https://msdn.microsoft.com/en-us/library/windows/desktop/ee719664(v=vs.85).aspx
This topic demonstrates how to scale an IWICBitmapSource using the IWICBitmapScaler component.
To scale a bitmap source
Create an IWICImagingFactory object to create Windows Imaging Component (WIC) objects.
C++Copy// Create WIC factoryhr = CoCreateInstance( CLSID_WICImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&m_pIWICFactory) );
Use the CreateDecoderFromFilename method to create an IWICBitmapDecoder from an image file.
C++CopyHRESULT hr = S_OK;IWICBitmapDecoder *pIDecoder = NULL;IWICBitmapFrameDecode *pIDecoderFrame = NULL;IWICBitmapScaler *pIScaler = NULL;hr = m_pIWICFactory->CreateDecoderFromFilename( L"turtle.jpg", // Image to be decoded NULL, // Do not prefer a particular vendor GENERIC_READ, // Desired read access to the file WICDecodeMetadataCacheOnDemand, // Cache metadata when needed &pIDecoder // Pointer to the decoder );
Get the first IWICBitmapFrameDecode of the image.
C++Copy// Retrieve the first bitmap frame.if (SUCCEEDED(hr)){ hr = pIDecoder->GetFrame(0, &pIDecoderFrame);}
The JPEG file format only supports a single frame. Because the file in this example is a JPEG file, the first frame (
0
) is used. For image formats that have multiple frames, seeHow to Retrieve the Frames of an Image for accessing each frame of the image.Create the IWICBitmapScaler to use for the image scaling.
C++Copy// Create the scaler.if (SUCCEEDED(hr)){ hr = m_pIWICFactory->CreateBitmapScaler(&pIScaler);}
Initialize the scaler object with the image data of the bitmap frame at half the size.
C++Copy// Initialize the scaler to half the size of the original source.if (SUCCEEDED(hr)){ hr = pIScaler->Initialize( pIDecoderFrame, // Bitmap source to scale. uiWidth/2, // Scale width to half of original. uiHeight/2, // Scale height to half of original. WICBitmapInterpolationModeFant); // Use Fant mode interpolation.}
Draw or process the scaled bitmap source.
The following illustration demonstrates imaging scaling. The original image on the left is 200 x 130 pixels. The image on the right is the original image scaled to half the size.
- Direct2D Intro - Scale a Bitmap Source
- Direct2D Intro - Clip a Bitmap Source
- Direct2D Intro - Flip and Rotate a Bitmap Source
- Direct2D Intro - Modify the Pixels of a Bitmap Source
- Direct2D Intro - Draw a BitmapSource
- Direct2D Intro - Load Bitmap From Resource
- Direct2D draw bitmap
- Windows Dev Intro - Direct2D Compile Error
- IOS Dev Intro - vImage scale
- IOS Dev Intro - AVASSetWriterInput Scale Encode
- Direct2D Intro - Retrieve the Frames from an Image
- Creating a Simple Direct2D Application
- IOS Dev Intro - Raw Bitmap Modification
- Open Source Vision Software, Intro and Training
- A cartoon intro to Redux
- Intro
- intro
- Intro
- fastboot 刷机遇到问题
- 数组
- 直接拿来用!最火前端开源项目
- 二叉树先中后遍历
- Caffe与Lasagne使用——人脸关键点检测
- Direct2D Intro - Scale a Bitmap Source
- params详解
- VS2013配置EmguCV的准备工具
- 集群监控
- 《Android源码设计模式》读书笔记 (24) 第24章 桥接模式
- bootstrap
- JAVA 接口
- 各大机器学习包汇总(python版,持续更新)
- Struts2利用iText导出word文档