0

在我的项目中我想使用EmguCV lib,但是EmguCV的功能无法处理Bitmap对象,所以我必须将Bitmap转换为其他类型,Intptr是一个选择但我真的不知道如何编码,老兄代码是我的项目的抽象,如下所示:

Bitmap bmp = new Bitmap(e.width, e.height,
    System.Drawing.Imaging.PixelFormat.Format24bppRgb);
System.Drawing.Imaging.BitmapData data = 
    bmp.LockBits(new Rectangle(0, 0, e.width, e.height), 
        System.Drawing.Imaging.ImageLockMode.ReadWrite, 
        System.Drawing.Imaging.PixelFormat.Format24bppRgb);
int dataLength = e.width * e.height * 3;
Win32.memcpy(data.Scan0, (IntPtr)e.data, (uint)dataLength);
convertBitmapToIntptr(bmp);

我怎样才能在这个函数中编码convertBitmapToIntptr(bmp)

4

2 回答 2

1

这可能是一个老问题,但如果您使用 EmguCV,则可以完成位图到 IntPtr 的转换(从版本 2.4.2 开始),如下例所示:

Bitmap bitmap = new Bitmap("pathToBitmapFile");

Image<Bgr,byte> image = new Image<Bgr,byte>(bitmap);

IntPtr = image.Ptr;   

请参阅EmguCV 文档

于 2013-03-14T15:36:26.557 回答
0

你想把它包装在一个类中......

我已经完成了这项工作并将其命名为“FastBitmap”,您可以将其锁定在构造函数中,获取 ptr,并添加使用 ptr 的方法

于 2010-06-03T01:18:10.933 回答