2010-06-03 7 views
0

в моем проекте Я хочу использовать EmguCV lib, но функция EmguCV не может обработать объект Bitmap, поэтому мне нужно преобразовать Bitmap в какой-то другой тип, Intptr - это выбор, но я на самом деле не знаю, как код, паренек код абстрагироваться от моего проекта, как это:как преобразовать bitmap в intptr в C#

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)?

+0

не совсем уверен, что вы спрашиваете? –

+0

Вы ищете GetHbitmap()? http://msdn.microsoft.com/en-us/library/1dz311e4.aspx –

ответ

0

вы хотите, чтобы обернуть это в классе ....

Я сделал это, и назвал его «FastBitmap», и вы можете заблокировать его в конструкторе, получить PTR, и добавить методы для работы с ПВП

1

Это может быть старый вопрос, но если вы используете EmguCV, Bitmap для преобразования IntPtr можно сделать (в версии 2.4.2), как в следующем примере:

Bitmap bitmap = new Bitmap("pathToBitmapFile"); 

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

IntPtr = image.Ptr; 

См EmguCV Documentation

Смежные вопросы