【发布时间】:2011-05-19 04:15:48
【问题描述】:
您好,我有一个位图,它显示在 form 的文件中;
Bitmap btm = new Bitmap("F:\\Image.bmp");
我在一个类中有一个方法,它采用这个btm 并做一些处理并返回我需要的是将这个btm 作为一个内存指针传递给类中的这个函数并返回其地址
我不确定这个过程是否能够像其他基于 C 的语言 C/C++ 一样完成 C#
【问题讨论】:
您好,我有一个位图,它显示在 form 的文件中;
Bitmap btm = new Bitmap("F:\\Image.bmp");
我在一个类中有一个方法,它采用这个btm 并做一些处理并返回我需要的是将这个btm 作为一个内存指针传递给类中的这个函数并返回其地址
我不确定这个过程是否能够像其他基于 C 的语言 C/C++ 一样完成 C#
【问题讨论】:
如果您正在寻找指向像素数据的内存指针,请在不安全的块中使用 Bitmap.LockBits()。它返回一个 BitmapData 对象,其中包含有关位图和地址的信息。
查看this msdn article 了解更多信息。
编辑:只想指出,如果您想更改像素数据,那么您可以使用 SetPixel 方法,这样您就不必“变得不安全”。但是,如果您正在考虑一次处理多个像素,那么在内存中修改它们确实可以提供更好的性能。
希望对您有所帮助。
干杯!
【讨论】:
getpixel 和setpixel 上使用这种方法,我可以像我在 r 8 之前使用的那样使用它们吗?
【讨论】: