位图作为指针
您好,我有一个位图,它以表单
的形式显示在文件中;
Bitmap btm = new Bitmap("F:\\Image.bmp");
我在一个类中有一个方法,它接受这个 btm
并执行一些处理并返回我需要的是将这个 btm
作为 传递给类中的这个函数>内存指针并返回其地址,
我不确定此进程是否能够像其他基于C
的语言C/C++<一样
C#
/代码>
Hi i have a Bitmap which is showing in a file in a form
;
Bitmap btm = new Bitmap("F:\\Image.bmp");
i have a method in a class which take this btm
and do some process and return back what i need is to pass this btm
to this function in the class as a memory pointer and return its address
im not sure that will this process is able to do it C#
as other C
based languages C/C++
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您正在寻找指向像素数据的内存指针,请在不安全的块中使用 Bitmap.LockBits() 。它返回一个 BitmapData 对象,其中包含有关位图和地址的信息。
有关详细信息,请参阅这篇 msdn 文章。
编辑:只是想指出,如果您想更改像素数据,那么您可以使用 SetPixel 方法,这样您就不必“变得不安全”。但是,如果您希望一次操作多个像素,那么在内存中修改它们确实可以提供更好的性能。
希望有帮助。
干杯!
if you are looking for a memory pointer to the pixel data then use Bitmap.LockBits() in an unsafe block. it returns a BitmapData object that contains info about the bitmap and the address.
take a look at this msdn article for more info.
EDIT: Would just like to note that if you would like to change pixel data then you could use the SetPixel method so you don't have to 'go unsafe'. But if you are looking at manipulating many pixels at a time then modifying them in memory does give better performance.
Hope that helps.
Cheers!
您可以在 C# 中使用委托来代替函数指针。
这些链接可能会帮助您理解这个概念:
c# 中有函数指针吗?
C# 中的函数指针
You can use delegates in C# in place of function pointers.
These links may help you understand the concept:
are there function pointers in c#?
Function pointers in C#