我有一个将 Direct2D 内容绘制到 ID2D1RenderTarget 的现有组件,我想将该绘图保存到图像文件中。这里、这里和这里的问题虽然对我有所帮助,但并没有提供一个明确的答案来说明如何去做。
我的第一个想法是尝试官方的MSDN 方法。不幸的是,它在 Win7 中不可用。
我的第一个想法是修改绘图例程,使其接受 RenderTarget 作为参数并使用 ID2D1Factory::CreateWicBitmapRenderTarget 直接绘制到 IWICBitmap 中,但结果对我来说非常困难(因为需要修改不是只有绘图例程本身,还有该组件的所有用户的绘图回调(用 Delphi 编写的代码使用 Embarcadero 的TDirect2DCanvas,因此不需要管理所有 Direct2D 资源,如渲染目标或画笔)。
我的第二个想法是创建一个 ID2D1Bitmap,用已经使用 ID2D1Bitmap::CopyFromRenderTarget 绘制的内容填充它,然后将该 ID2D1Bitmap 绘制到 WicBitmapRenderTarget(这是关于这里所做的)。我和那些问我链接到的问题的人遇到了同样的问题:不同的资源亲和力,正如Kenny Kerr 简要解释的那样。
那么在Win7下是否可以不用实现我的第一个想法,你会怎么做呢?