【问题标题】:Direct2D gradient along geometry path沿几何路径的 Direct2D 渐变
【发布时间】:2012-04-06 10:21:49
【问题描述】:

在 D2D 中,有没有一种方法可以创建使用自定义路径几何图形作为起点/终点的渐变画笔?我可以用简单的方法为路径的每一步创建一个不同的画笔,并使用该画笔将其渲染为单独的路径,但我正在寻找不会影响性能的东西。

谢谢!

【问题讨论】:

    标签: graphics gradient direct2d


    【解决方案1】:

    您想要的是与 GDI+ 的 PathGradient 等效的,而 Direct2D 中根本不存在。

    作为一种解决方法,您可以尝试使用 GDI+ 将您需要的内容呈现到位图中,然后使用 Direct2D 进行绘制。这不会是硬件加速的,而且 GDI+ 和 Direct2D 之间的位图共享有点笨拙,但至少可以工作。您将使用ID2D1RenderTarget::CreateBitmap() 创建一个 ID2D1Bitmap,然后锁定 GDI+ 位图,然后将 ID2D1Bitmap::CopyFromMemory() 与来自 GDI+ BitmapData 的值一起使用。

    如果您使用的是软件渲染目标,您还可以使用ID2D1RenderTarget::CreateSharedBitmap(),这样您就可以跳过内存复制。它需要您首先使用您自己的 IWICBitmapLock 实现来包装 GDI+ BitmapData(又名“锁定的 GDI+ 位图”)(这并不难,但肯定很笨拙)。

    【讨论】:

    • 如果有什么安慰的话,WPF 和 XPS 中也缺少 PathGradient。与 Direct2D 一起,这三个共享完全相同的“绘图语言”;去比较他们的API,你会看到!
    猜你喜欢
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多