Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 作为指针的位图_C#_Image_Bitmap - Fatal编程技术网

C# 作为指针的位图

C# 作为指针的位图,c#,image,bitmap,C#,Image,Bitmap,嗨,我有一个位图,它以格式显示在文件中 Bitmap btm = new Bitmap("F:\\Image.bmp"); 我在一个类中有一个方法,它接受这个btm并进行一些处理,然后返回我需要的是将这个btm作为内存指针传递给类中的这个函数,并返回它的地址 我不确定这个过程是否能够像其他基于C的语言那样C++使用C中的委托来代替函数指针 这些链接可能有助于您理解该概念: 您可以使用C#中的委托代替函数指针 这些链接可能有助于您理解该概念: 如果要查找指向像素数据的内存指针,请在不安全的块

嗨,我有一个位图,它以
格式显示在文件中

Bitmap btm = new Bitmap("F:\\Image.bmp");
我在一个类中有一个方法,它接受这个
btm
并进行一些处理,然后返回我需要的是将这个
btm
作为内存指针传递给类中的这个函数,并返回它的地址

我不确定这个过程是否能够像其他基于
C
的语言那样
C++

使用C中的委托来代替函数指针

这些链接可能有助于您理解该概念:

您可以使用C#中的委托代替函数指针

这些链接可能有助于您理解该概念:


如果要查找指向像素数据的内存指针,请在不安全的块中使用Bitmap.LockBits()。它返回一个BitmapData对象,该对象包含有关位图和地址的信息

查看更多信息

编辑:我只想指出,如果您想更改像素数据,那么您可以使用SetPixel方法,这样您就不必“变得不安全”。但是,如果您希望一次处理多个像素,那么在内存中修改它们确实会提供更好的性能

希望有帮助


干杯

如果要查找指向像素数据的内存指针,请在不安全的块中使用Bitmap.LockBits()。它返回一个BitmapData对象,该对象包含有关位图和地址的信息

查看更多信息

编辑:我只想指出,如果您想更改像素数据,那么您可以使用SetPixel方法,这样您就不必“变得不安全”。但是,如果您希望一次处理多个像素,那么在内存中修改它们确实会提供更好的性能

希望有帮助


干杯

我计划在
getpixel
setpixel
上使用这种方法,我可以像在R8之前一样使用它们?我还没有尝试在位图被锁定时调用setpixel-我不确定结果会是什么。如果您已经锁定了它,还不如直接修改它。如果必须的话,我建议在锁定位图之前或解锁位图之后调用setpixel。我计划在
getpixel
setpixel
上使用这种方法,我可以像在R8之前那样使用它们?我还没有尝试在位图锁定时调用setpixel-我不确定结果会是什么。如果您已经锁定了它,还不如直接修改它。如果必须,我建议在锁定位图之前或解锁位图之后调用setpixel。