Direct2D Intro - Clip a Bitmap Source
来源:互联网 发布:golang java性能对比 编辑:程序博客网 时间:2024/06/05 01:00
https://msdn.microsoft.com/en-us/library/windows/desktop/ee719657(v=vs.85).aspx
This topic demonstrates how to obtain a rectangular portion of an IWICBitmapSource using an IWICBitmapClipper component.
To clip 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;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 IWICBitmapClipper to use for the image clipping.
C++CopyIWICBitmapClipper *pIClipper = NULL;if (SUCCEEDED(hr)){ hr = m_pIWICFactory->CreateBitmapClipper(&pIClipper);}
Initialize the clipper object with the image data within the given rectangle of the bitmap frame.
C++Copy// Create the clipping rectangle.WICRect rcClip = { 0, 0, uiWidth/2, uiHeight/2 };// Initialize the clipper with the given rectangle of the frame's image data.if (SUCCEEDED(hr)){ hr = pIClipper->Initialize(pIDecoderFrame, &rcClip);}
Draw or process the clipped image.
The following illustration demonstrates imaging clipping. The original image on the left is 200 x 130 pixels. The image on the right is the original image clipped to a rectangle defined as
{20,20,100,100}
.
- Direct2D Intro - Clip a Bitmap Source
- Direct2D Intro - Scale 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
- 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
- clip
- clip
- A cartoon intro to Redux
- animeditor-Creating a New Animation Clip
- Intro
- intro
- CentOS 7 安装 Hadoop2.7.1
- ocx工程及不显示椭圆的方法
- 第七周项目二-友元类
- 【Petuum 源码解析】之K-Means分布式算法源码
- python中的reduce函数
- Direct2D Intro - Clip a Bitmap Source
- 聚合数据API用法简介
- CAS配置二-通过数据库进行登录验证
- 3. 标准库类型
- 1.设备驱动基础
- 基于spark mllib的LDA模型训练源码解析
- SD卡的特点和背景知识
- 关于使用Hibernate注解的时候遇到的问题
- Libnids详解