我的任务是在大型黑白图像(大小约为4000x6000像素)上绘制许多简单的几何图形,如矩形和圆形,并将结果保存到位图文件和二进制数组中,如果绘制,则将每个像素表示为1,否则表示为0。我使用的是GDI+(=System.Drawing)。然而,由于这花了太长时间,我开始看Direct2D。我很快学会了如何绘制到Win32窗口,并认为我可以用它来绘制位图。
我学会了如何加载图像并在此处显示:https://msdn.microsoft.com/de-de/library/windows/desktop/ee719658(v=vs.85).aspx但我找不到关于如何创建大型ID2D1Bitmap并对其进行渲染的信息
如何创建与这样一个新创建的(如何?)大位图关联的渲染目标(必须是ID2D1HowndRenderTarget?),然后在其中绘制矩形和圆形并将其保存到文件中?
非常感谢你给我指明了正确的方向,于尔根
如果我要这样做,我会滚动自己的代码,而不是使用GDI或DirectX调用。二进制位图的结构非常简单(压缩的位数组),一旦实现了设置单个像素和绘制单个行程(水平线段)的函数,绘制矩形和圆形就很容易了。
如果您对位打包感到不舒服,可以使用字节数组(每个字节一个像素),最后转换整个图像。
一旦你了解了二进制文件的I/O操作(你会在网上找到很多现成的函数),将位图写入文件也不是什么大不了的事。
实际上,当您知道位图文件数据布局的规格时,您根本不需要Windows。