此目录为Direct2D_1.0版本的示例代码。
上一级
使用ID2D1StrokeStyle类型的对象可以创建不同风格的线条,绘制出多种多样的几何图形。

(1)从文件加载位图(D2DCreateBitmapFromFile)
(2)从资源加载位图(D2DCreateBitmapFromResource)
详见博客:Direct2d开发之从资源加载位图。
此示例演示了将窗口内容保存为图片文件。
整个过程为:
(1)将要绘制的内容绘制到CompatibleRenderTarget上;
(2)从CompatibleRenderTarget上GetBitmap;
(3)将获取的bitmap绘制到HwndRenderTarget上;
(4)将获取的bitmap通过WIC组件保存为图片文件。
注意:在此过程中,注意不同设备创建出来的资源之间的兼容,容易出错。
(1)对位图进行颜色混合(D2DBitmapBlend)
对位图进行颜色混合,详见博客:Direct2D开发之纹理混合。

(2)将两个位图进行混合(D2DBitmapBlendWithBitmap)
将两个位图进行混合,详见博客:Direct2D开发之纹理混合。

使用DirectWrite绘制自定义字体(即非系统字体)。
将自定义字体文件加载为资源文件也可以,但是在这里我是用的是另外一种方法。
方法是用字体文件和需要绘制的字符串创建路径几何图形(path geometry),然后直接绘制路径几何图形即可。
使用DirectWrite绘制文本时,对字符串进行去尾操作,详见博客:Direct2D开发之字符串去尾。

DirectWrite使用"Segoe UI Symbol"字体来绘制一些字符符号。
详见博客:使用DirectWrite测量Direct2D文字大小
1.11 色度键过滤(绿幕抠图)
绘制图片时,过滤掉指定颜色。(此方法直接操作像素,效率较低)

| 项目名称 | 项目介绍 |
|---|---|
| D2DTMPL | Direct2D的一个模板框架程序 |
| D2DBezierToWave | 使用贝塞尔曲线绘制波形图。 |
| D2DCollisionDetectionBetweenGeometrys | 两个几何图形对象之间的位置关系判断,即碰撞检测,详见博客:Direct2D处理几何图形之间的碰撞检测(下)。 |
| D2DGeometryCollisionDetectionWithPt | 几何图形对象和点的位置关系判断,即碰撞检测,详见博客:Direct2D处理几何图形之间的碰撞检测(上)。 |
| D2DGeometricTranslationOrder | 在Direct2D绘图中,几何变换的顺序是有固定顺序的,正确的顺序应该是:缩放 -> 旋转 -> 平移。如果你随意改变几何变换的顺序,将会导致不可预见的错误结果。 |
| D2DMesh | 绘制网格,详见博客:Direct2d开发之绘制网格。 |
| D2DLayeredWnd | Direct2D绘制分层窗口。 |
ExtendSamples目录中的示例为进阶示例。
| 项目名称 | 项目介绍 |
|---|---|
| D2DMatrixPro | 此工程演示了Direct2D矩阵的高级使用方法,并说明了子节点和父节点的矩阵复合使用方法。 |
| MFCD2DApplication | MFC工程中使用Direct2D。 |

