在 Web 上使用 direct2d 绘制叠加层

draw overlays with direct2d on web

ASP.NET 可以用C#调用Direct2D。但是创建位图后,我们可以在网络上显示位图吗?

protected void Page_Load(object sender, EventArgs e)
    {
        m_renderBitmap = m_wicFactory.CreateImagingBitmap(m_imageWidth, m_imageHeight, PixelFormats.Bgr32Bpp, BitmapCreateCacheOption.CacheOnLoad);

        RenderTargetProperties renderProps = new RenderTargetProperties
        {
            PixelFormat = new PixelFormat(
                 Microsoft.WindowsAPICodePack.DirectX.Graphics.Format.B8G8R8A8UNorm,
                 AlphaMode.Ignore),
            Usage = RenderTargetUsages.None,
            RenderTargetType = RenderTargetType.Software
        };

        m_renderTarget = m_d2dFactory.CreateWicBitmapRenderTarget(m_renderBitmap, renderProps);
    }

我创建的rendertarget是WICBitmapRenderTarget。如果我可以在网络上显示位图?

您可以通过多种方式实现这一目标。

1 - 将图像渲染成字节数组并直接编码到页面中;查看此

的答案

Use a System.Drawing.Image in an HTML tag

注意 - 效率非常低,只能处理小图像。

2 - 以适当的 MIME 类型将图像流式传输到浏览器,即 image/jpg 或其他类型。创建一个页面或 HTTP 处理程序,其唯一的工作是响应图像请求,请参阅答案:-

Render HTML as an Image

..作为首发。