我有一个奇怪的小生命计划,我一直在研究涉及二维数组中的数据。这从来没有被认为是一件大事,我最初只是通过逐个像素地将它写到外部位图来查看它的一些快照,然后我打开并查看。这不会给我任何类型的屏幕实时更新。这是一种可怕的方式,并且在尝试直接在窗口中实现绘制时,我希望第一次正确有效地执行此操作。
我做了一些搜索并找到bitblt,这将让我一次绘制一个完整的矩形,但我的所有图形体验仅限于WPF之类的东西,很多术语都丢失了。我不知道我的数据应该是什么格式,以便将其作为位图传递给此函数。在阅读msdn时,我发现了对DC等事物的引用,还有更多我还没有学过的东西。
我不需要了解很多关于Windows图形API或.NET绘图框架的知识。我不想学习一堆DirectX。我想制作一个特定尺寸的窗口,我希望能够在我认为合适时设置每个像素的RGB值。没有图纸形状或任何东西,只有像素。但是我也不想一次只做一个像素,每个像素都需要一个单独的系统调用,因为即使是像我这样的蹩脚程序员也知道它是多么低效。有谁知道一个好的资源是否能在Windows中对图形进行简单的解释并让我这样做? MSDN非常适合查找,但如果你想从头学习东西,它会有点多。
C#更受欢迎,因为其中写有lifesim,但如果有充分的理由,我对在C ++中重写它没有任何疑虑。
答案 0 :(得分:1)
您可以在WPF中尝试WriteableBitmap课程,看看它是否符合您的目的。
您所要做的就是将数据保存在2D数组中并将其写入WriteableBitmap。将WriteableBitmap设置为WPF图像的图像源,然后就完成了。
如果您需要一个例子,请告诉我。
答案 1 :(得分:0)
您可能想要做的是使用LockBits锁定图像数据,然后将图像作为数组进行操作。这是鲍勃鲍威尔的一个很棒的教程:
http://www.bobpowell.net/lockingbits.htm
否则,如果不关心速度,可以使用GetPixel和SetPixel方法。但这些速度非常慢,但可以在托管环境中工作。