C# 或 C++ - Windows 图形概述的好资源 - 2D,直接绘制像素

标签 c# c++ windows graphics

我有一个我一直在研究的奇怪的小 lifesim 程序,它涉及二维数组中的数据。这从来都不是一件大事,我最初通过将它逐个像素地写入外部位图来查看它的一些快照,然后我打开并查看。这不会给我任何形式的屏幕实时更新。这是一种糟糕的方法,并且在尝试直接在窗口中实现绘制时,我想第一次就正确有效地完成此操作。

我做了一些搜索并找到了 bitblt ,这将让我一次绘制一个完整的矩形,但我所有的图形经验都仅限于 WPF 之类的东西,很多术语我都忘记了。我不知道我的数据应该是什么格式才能将它作为位图传递给这个函数。在阅读 msdn 时,我发现了对 DC 等内容的引用,还有更多我尚未了解的内容。

我不需要了解很多有关 Windows 图形 API 或 .NET 绘图框架的知识。我不想学习一堆 DirectX。我想制作一个特定尺寸的窗口,并且我希望能够设置我认为合适的每个像素的 RGB 值。没有图纸形状或任何东西,只有像素。但我也不想一次做一个像素,每个像素都有一个单独的系统调用,因为即使像我这样的蹩脚程序员也知道这是多么低效。有谁知道是否有一个很好的资源可以对 Windows 中的图形进行简单的解释并让我这样做? MSDN 非常适合查找内容,但如果您想从头开始学习,它就有点费力了。

C# 更可取,因为 lifesim 是用它编写的,但如果有充分的理由,我对用 C++ 重写它没有任何疑虑。

最佳答案

你可以试试 WriteableBitmap在 WPF 中上课,看看它是否符合您的目的。

A tutorial

您所要做的就是将数据保存在二维数组中并将其写入 WriteableBitmap。将 WriteableBitmap 设置为 WPF 图像的图像源,您就完成了。

如果您需要示例,请告诉我。

关于C# 或 C++ - Windows 图形概述的好资源 - 2D,直接绘制像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5946225/

相关文章:

c++ - 为什么 std::setprecision(6) 在固定宽度模式下流式传输超过六位数字?

c++ - malloc什么时候不调用mmap?

wpf - 新项目的 Delphi vs C# & WPF?

c - 为什么在记事本中进行击键时出现异常?

c - MSDN 示例中 SetEntriesInAcl 错误 87 的原因

c# - 两个十六进制字节数组的 XOR 函数

c# - 针对整个模式验证单个 XML 节点

c# - 为什么更喜欢 yield 而不是简单的返回?

c# - 在 C# 中,方法是否可以返回 List 以便客户端只能读取它而不能写入它?

C++ #define 获取一个字符串