Direct2D WIC绘制图片
- 编解码图片。也可以自定义图片解码插件。
- 读取图片元数据。
- 图像处理(最高支持每通道32位)。
- 内置支持一些流行的格式。包括:BMP v5, GIF 89a/m, ICO, JPEG, PNG 1.2, TIFF 6.0, Windows Media Photo.
- 初始化IWICImagingFactory的对象。
- 用IWICImagingFactory创建解码器。
- 打开文件,并获取一帧。
- 转码。
- 初始化。
- 创建图片。
- 绘制图片。
- pRenderTarget->BeginDraw();
- //clear screen
- pRenderTarget->Clear(D2D1::ColorF(D2D1::ColorF::White));
- IWICImagingFactory* pIWICFactory = NULL;
- IWICBitmapDecoder* pDecoder = NULL;
- IWICBitmapFrameDecode* pFrame = NULL;
- IWICFormatConverter* pConverter = NULL;
- ID2D1Bitmap* pBitmap = NULL;
- CoCreateInstance(CLSID_WICImagingFactory, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pIWICFactory) );
- //create a decoder
- hr = pIWICFactory->CreateDecoderFromFilename(
- TEXT("C:\\Users\\NET45.png"),
- NULL,
- GENERIC_READ,
- WICDecodeMetadataCacheOnLoad,
- &pDecoder
- );
- // Create the initial frame.
- hr = pDecoder->GetFrame(0, &pFrame);
- // Format convert the frame to 32bppPBGRA
- hr = pIWICFactory->CreateFormatConverter(&pConverter);
- //Initialize Converter
- hr = pConverter->Initialize(
- pFrame, // Input bitmap to convert
- GUID_WICPixelFormat32bppPBGRA, // Destination pixel format
- WICBitmapDitherTypeNone, // Specified dither pattern
- NULL, // Specify a particular palette
- 0.f, // Alpha threshold
- WICBitmapPaletteTypeCustom // Palette translation type
- );
- // create Bitmap
- hr = pRenderTarget->CreateBitmapFromWicBitmap(
- pConverter,
- NULL,
- &pBitmap
- );
- //get bimap size
- D2D1_SIZE_F size = pBitmap->GetSize() ;
- D2D1_POINT_2F upperLeftCorner = D2D1::Point2F(0.f, 0.f) ;
- //draw bitmap
- pRenderTarget->DrawBitmap(
- pBitmap,
- D2D1::RectF(
- upperLeftCorner.x,
- upperLeftCorner.y,
- upperLeftCorner.x + size.width,
- upperLeftCorner.y + size.height)
- ) ;
- pRenderTarget->EndDraw();
关于WIC的详细介绍可以参考MSDN:
Direct2D WIC绘制图片的更多相关文章
- 杂谈SharpDx中的WIC组件——我们需要WIC的图片编码功能么?
在前文 SharpDX之Direct2D教程II——加载位图文件和保存位图文件 中,发现在VB2010中不能很好的运用SharpDx中的WIC组件进行图片的编码工作.可能是我的设置问题,也可能是Sha ...
- UWP&WP8.1 重新绘制图片 WriteableBitmap用法 图片转byte[]数组,byte[]数组转图片
---恢复内容开始--- WriteableBitmap 是UWP和WP8.1绘制图片的,重组图片的最重要方法.方法较为简单,方法多样性. 通过查看文档,WriteableBitmap的继承性是 ...
- html5 绘制图片 drawImage
要在绘图上下文中绘制图片,可以使用 drawImage 方法.该方法有三种不同的参数: drawImage(image,dx,dy) drawImage(image,dx,dy,dw,dh) d ...
- 使用html5 canvas绘制图片
注意:本文属于<html5 Canvas绘制图形入门详解>系列文章中的一部分.如果你是html5初学者,仅仅阅读本文,可能无法较深入的理解canvas,甚至无法顺畅地通读本文.请点击上述链 ...
- Android Canvas使用drawBitmap绘制图片
1.基本的绘制图片方法 //Bitmap:图片对象,left:偏移左边的位置,top: 偏移顶部的位置 drawBitmap(Bitmap bitmap, float left, float top, ...
- android中Canvas使用drawBitmap绘制图片
1.主要的绘制图片方法 //Bitmap:图片对象,left:偏移左边的位置,top: 偏移顶部的位置 drawBitmap(Bitmap bitmap, float left, float ...
- lufylegend库 LGraphics绘制图片
lufylegend库 LGraphics绘制图片 <!DOCTYPE html> <html lang="en"> <head> <me ...
- MATLAB坐标系中绘制图片
MATLAB坐标系中绘制图片 方法一 使用图片坐标循环的方式,代码如下. clear,clc,close all tic; map=imbinarize(imread('map.bmp'));%map ...
- Android 音视频开发(一) : 通过三种方式绘制图片
版权声明:转载请说明出处:http://www.cnblogs.com/renhui/p/7456956.html 在 Android 音视频开发学习思路 里面,我们写到了,想要逐步入门音视频开发,就 ...
随机推荐
- UVA 719 / POJ 1509 Glass Beads (最小表示法/后缀自动机)
题目大意: 给出一个长度为N的字符串,求其字典序最小的循环同构. N<=10W. 算法讨论: 算法一.最小表示法.定义题. 算法二.后缀自动机. Codes: #include <iost ...
- Mapper映射语句高阶应用——ResultMap
resultMap 元素是MyBatis 中最重要最强大的元素.它就是让你远离 90%的需要从结果 集中取出数据的 JDBC代码的那个东西, 而且在一些情形下允许你做一些 JDBC 不支持的事 情. ...
- easyui datagrid detailview嵌套datagrid的问题
解决问题办法来自 http://www.coding123.net/article/20141113/easyui-datagrid-datailview-use-sub-datagrid-not-a ...
- js特殊字符转义
点的转义:. ==> \\u002E 美元符号的转义:$ ==> \\u0024 乘方符号的转义:^ ==> \\u005E 左大括号的转义:{ ==> \\u007B 左方括 ...
- apache和tomcat的区别
Web服务器父与子 Apache和Tomcat区别 经常在用Apache和Tomcat等这些服务器时,你总感觉还是不清楚他们之间有什么关系.在用Tomcat的时候总出现Apache,总感到迷惑,到底谁 ...
- Yii2.0 UrlManager
服务器软件的配置与1.0一致即可.. 在组件中进行如下配置: 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' = ...
- shell练习--批量创建账号
#!/bin/bash #By spinestars #-- #cksum5位数获取方法,可能有重复 #pd="user`head -200 /dev/urandom | cksum | h ...
- text-overflow 文字溢出时的设置
text-overflow : clip | ellipsis clip: 不显示省略标记(...),而是简单的裁切. ellipsis: 当对象内文本溢出时显示省略标记(...) 设置或检索是否使用 ...
- usb开发笔记
U盘应属于海量存储类. USB海量存储设备,又包括通用海量存储子类,CDROM,Tape等,U盘实际上属于海量存储类中通用海量存储子类.通用海量存储设备实现上是基于块/扇区存储的设备. USB组织定义 ...
- 转:Dynamic Binding Of RDLC To ReportViewer
Introduction I was struggling to find the solution to bind rdlc dynamically to reportviewer .We had ...