【问题标题】:Bitmap as a pointer [closed]位图作为指针[关闭]
【发布时间】:2011-05-19 04:15:48
【问题描述】:

您好,我有一个位图,它显示在 form 的文件中;

Bitmap btm = new Bitmap("F:\\Image.bmp");

我在一个类中有一个方法,它采用这个btm 并做一些处理并返回我需要的是将这个btm 作为一个内存指针传递给类中的这个函数并返回其地址

我不确定这个过程是否能够像其他基于 C 的语言 C/C++ 一样完成 C#

【问题讨论】:

    标签: c# image bitmap


    【解决方案1】:

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

    查看this msdn article 了解更多信息。

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

    希望对您有所帮助。

    干杯!

    【讨论】:

    • 我打算在getpixelsetpixel 上使用这种方法,我可以像我在 r 8 之前使用的那样使用它们吗?
    • 我没有尝试在位图被锁定时调用 SetPixel - 我不确定结果会是什么。如果你把它锁定了,还不如直接修改它。如果必须,我建议在锁定位图之前或解锁位图之后调用 setpixel。
    【解决方案2】:

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

    这些链接可以帮助您理解这个概念:

    are there function pointers in c#?

    Function pointers in C#

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多