用Direct2D绘制SVG (2)

本文介绍了如何使用Direct2D加载并绘制SVG图形,包括从渲染目标查询接口到使用ID2D1DeviceContext5绘制SVG文档的过程。文章还讨论了Direct2D内置SVG功能的局限性,以及其与第三方库nanosvg相比的优势与不足。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Direct2d其实是可以直接Load和Draw SVG图形的。


首先需要从renderTarger, QueryInterface 到 ID2D1DeviceContext5
再从ID2D1DeviceContext5, CreateSvgDocument获得 ID2D1SvgDocument
(中间涉及到File到IStream,需通过HGLOBAL做桥)
最后ID2D1DeviceContext5直接DrawSvgDocument即可

然而问题还在:
1.大公司小小软的这个内置的SVG功能,比nanosvg高不到哪里,一样,只能支持SVG v1.1,
因此绘制出来的效果一样,仅仅是基本图形的显示而已。

2. 而且ViewPoint的功能甚至还不如nanosvg,无法直接获取SVG文件的原始尺寸。鄙视MS

但Direct2D内置了n多的Effect效果,只要与SVG Filter做个转接,
理论上有希望实现比较可观的显示效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值