【问题标题】:Sharpdx Direct2D1 BitmapRenderTarget to Image?Sharpdx Direct2D1 BitmapRenderTarget 到图像?
【发布时间】:2014-01-18 10:31:35
【问题描述】:

我正在寻找一种从 Direct2D1 BitmapRenderTarget 创建图像的简单方法。

我确实有一个像这样的 BitmapRenderTarget:

var bitmapRenderTarget = new SharpDX.Direct2D1.BitmapRenderTarget(m_d2dRenderTarget, CompatibleRenderTargetOptions.None, new SharpDX.Direct2D1.PixelFormat(Format.B8G8R8A8_UNorm, AlphaMode.Premultiplied));

我可以使用 bitmapRenderTarget.Bitmap 访问 Direct2D1 位图本身。虽然我无法在不使用 WIC 的情况下创建 PNG、JPEG、...。任何人都可以提供一种方法来创建 System.Drawing.Image 吗?

由于 PixelFormat 不兼容,我很乐意看到一个示例。

【问题讨论】:

    标签: c# image direct2d sharpdx


    【解决方案1】:

    不,显然没有 WIC。

    在 SharpDX 示例中,有两个示例项目说明了如何对图像进行编码。

    有一个新的(ish)“可以”通过使用Direct3D11.Device 来利用硬件 https://github.com/sharpdx/SharpDX-Samples/tree/master/Desktop/Direct2D1/OfflineImageProcessingApp/Program.cs

    而旧的https://github.com/sharpdx/SharpDX-Samples/blob/master/Desktop/Direct2D1/RenderToWicApp/Program.cs 使用WicRenderTarget

    如果您从第一个代码中获取代码,您实际上应该得到您想要的,但您仍然需要 Wic 将位图编码为目标图像格式(jpg、png...)

    【讨论】:

    • 感谢这两个链接。不幸的是,我现在确实有两个问题。您的 1 号链接仅适用于 Windows 8 及更高版本。链接二看起来不错,但我没有设法绘制由另一个 direct2d 工厂创建的位图。也许你能给我一个提示?如果有帮助,我还可以提供更多代码。
    • 不,第一个也适用于 Win7,但您可能需要安装一个小补丁。他们在 Win8 中对 Direct2D 进行了调整/添加了一些东西,这也适用于 Win7 ......第二个,不,我不知道如何让你的 d2d 目标作为 wic 目标工作。我敢打赌这是不可能的,你必须使用 wic 渲染目标......实际上我知道没有其他方法。
    猜你喜欢
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多