Direct2D (19) : 图层之 TD2D1LayerParameters.geometricMask (使用几何图形剪裁图层)
2011-04-05 17:08
253 查看
uses Direct2D, D2D1; procedure TForm1.FormPaint(Sender: TObject); var cvs: TDirect2DCanvas; iLayer: ID2D1Layer; rLayerParameters: TD2D1LayerParameters; wic: TWICImage; R: TRect; iEllipse: ID2D1EllipseGeometry; begin wic := TWICImage.Create; wic.LoadFromFile('C:\Temp\Test.png'); R := Rect(0, 0, wic.Width, wic.Height); {几何图形} D2DFactory.CreateEllipseGeometry(D2D1Ellipse(D2D1PointF(wic.Width/2, wic.Height/2), wic.Width/2, wic.Height/2), iEllipse); cvs := TDirect2DCanvas.Create(Canvas, ClientRect); cvs.RenderTarget.SetTransform(TD2DMatrix3x2F.Translation((ClientWidth-wic.width)/2, (ClientHeight-wic.height)/2)); cvs.BeginDraw; cvs.RenderTarget.CreateLayer(nil, iLayer); rLayerParameters.contentBounds := R; rLayerParameters.geometricMask := iEllipse; //! rLayerParameters.maskAntialiasMode := D2D1_ANTIALIAS_MODE_PER_PRIMITIVE; rLayerParameters.maskTransform := TD2DMatrix3x2F.Identity; rLayerParameters.opacity := 1.0; // rLayerParameters.opacityBrush := nil; rLayerParameters.layerOptions := D2D1_LAYER_OPTIONS_NONE; cvs.RenderTarget.PushLayer(rLayerParameters, iLayer); cvs.StretchDraw(R, wic); cvs.RenderTarget.PopLayer; cvs.EndDraw; cvs.Free; wic.Free; end; procedure TForm1.FormResize(Sender: TObject); begin Repaint; end;
效果图:
相关文章推荐
- [转]Ultra Fractal教程系列19——如何使用图层02——给新建的图层着色
- [转]Ultra Fractal教程系列22——如何使用图层05——关于融合模式的学习
- Ultra Fractal教程系列21——如何使用图层04——学习关于图层的不透明度
- ArcGIS API for Silverlight开发入门(7):使用非AGS数据源的图层<转>
- Android学习19--使用ContentProvider实现数据共享
- Linux下使用mail命令发送邮件 (fedora 19)
- cocos2d-x学习笔记19:记录存储3:使用摘要算法进行存档校验 推荐
- Symbian学习笔记(19) - 初探Web Services API 的使用(下)
- The NOTE of learning ASP.NET [19] 关于GC(内存回收机制)、对象的销毁和using的使用
- 关于使用OpenLayers的透明图层叠加的一些问题
- 19、Java入门—反射之Class类的使用
- PS 不能使用移动工具 因为目标图层被隐藏怎么办
- OpenStack入门修炼之Cinder服务-->使用NFS作为后端存储(19)
- 【Silverlight】Bing Maps学习系列(四):使用图钉层(Pushpin layer)及地图图层(MapLayer)
- 20150905-Y1506401-19+benz2015+at、crontab等使用方法
- 03-05 创建和编辑AutoCAD实体(五) 使用图层、颜色和线型(1)使用图层(1-9)
- iOS 使用百度地图地图画成功了,但是没有图层显示问题解决。
- 19、动态SQL之<set><if>标签的使用
- Javascript实例教程(19) 使用HoTMetal(2)
- 绘制几何图形:使用android.graphics类