如何将内存中的本机二进制映像转换为Winforms映像?

时间:2011-11-09 13:58:59

标签: winforms image c++-cli native

我有一个本机c ++库,可以将输出图像创建为内存中的本机区域。这是ARGB,一个像素为32位,宽度为*高度倍。我有一个winforms应用程序,我想显示此输出图像。因此我添加了一个需要将Image属性设置为Image的图片框。我该怎么转换呢?

旁注:前段时间我有一个类似的问题,WPF应用程序显示了这样的图像。我得到了这样的工作:

BitmapSource ^ bitmap = BitmapSource::Create(pic->GetX(), pic->GetY(),
        96, 96, PixelFormats::Bgr32, nullptr,
        IntPtr(pic->GetPointer()), pic->GetX() * pic->GetY() * sizeof(unsigned int), pic->GetX() * sizeof(unsigned int));
ImageControl->Source = bitmap;

其中pic-> GetPointer()返回指向内存中图像的本机指针。但这对Winforms不起作用。

1 个答案:

答案 0 :(得分:1)

改编自评论:

使用Bitmap.LockBits()获取指向像素数据的指针,并查看一般的BitmapData类。