Direct2D - 将矩形和圆形绘制成大图像并保存到磁盘

时间:2017-02-03 12:16:58

标签: image-processing graphics direct2d saving-data

我的任务是将大量简单的几何图形(如矩形和圆形)绘制成大型黑白图像(大小约为4000x6000像素)并将结果保存到位图文件和表示每个像素的二进制数组中如果绘制则为1,否则为0。我正在使用GDI +(= System.Drawing)。然而,由于这花了太长时间,我开始看看Direct2D。我很快学会了如何绘制到Win32窗口,并认为我可以使用它来绘制到位图。

我学会了如何加载图片并在此处显示:https://msdn.microsoft.com/de-de/library/windows/desktop/ee719658(v=vs.85).aspx 但我找不到有关如何创建大型ID2D1Bitmap并渲染它的信息。

如何创建一个渲染目标(必须是ID2D1HwndRenderTarget?)与这样一个新创建的(如何?)大位图相关联,然后绘制矩形和圆圈并将其保存到文件中,之后呢?

非常感谢您向我展示正确的方向, 尔根

2 个答案:

答案 0 :(得分:0)

如果我这样做,我会滚动自己的代码,而不是使用GDI或DirectX调用。二进制位图的结构非常简单(打包的位数组),一旦实现了设置单个像素的功能和绘制单个运行(水平线段)的功能,就可以轻松绘制矩形和圆形。

如果您对打包不感兴趣,可以使用字节数组(每个字节一个像素),最后转换整个图像。

一旦您了解二进制文件I / O操作(并且您将在Web上找到许多现成的函数),将位图写入文件也不是什么大问题。

实际上,当您知道位图文件数据布局的规格时,您根本不需要Windows。

答案 1 :(得分:0)

任何其他人试图弄清楚如何 - 在Direct2D中创建一个位图 - 画进去, - 显示和 - 将其存储到文件中, 我发现这篇文章非常有帮助: https://msdn.microsoft.com/en-us/library/windows/desktop/ff973956.aspx 希望,它也能帮助其他人 尔根