如何在C#中以像素级操作图像?
我需要能够分别读取/修改每个位图像素RGB值.
代码示例将不胜感激.
我正在编写一个包装DirectX 9的C#控件,并提供简化的界面来执行2D像素级绘制。.NET要求我将此代码包装在不安全的代码块中,并使用allow unsafe code选项进行编译。
我要锁定整个表面,然后将指针返回到内存的锁定区域。然后,我可以使用“简单”指针算法直接写入像素数据。我已经对此性能进行了测试,发现与已知的其他“安全”方法相比,速度有了显着提高。
这是在C#.NET应用程序中处理单个像素的最快方法吗?有没有更好,更安全的方法?如果有一种不需要指针操作的同样快速的方法,那么我倾向于使用它。
(我知道这是2008年,我们都应该使用DirectX 3D,OpenGL等,但是此控件仅用于2D像素渲染,而根本不需要3D渲染。)