将文件中的浮点像素数据读回C#

时间:2012-06-21 09:01:33

标签: c# c++ image

在C ++中,我将浮动图像写入文件:

FILE* fp = fopen("image.fft", "wb");

float* pixels = getPixel();

fwrite((unsigned char*)pixels, sizeof(pixels), width*height, fp);

为了分析图像,我们需要将浮动图像读入C#。我坚持如何将浮动图像“image.fft”读入C#。我知道浮动图像的大小宽度和高度。

2 个答案:

答案 0 :(得分:1)

使用Bitmap类获取和设置像素 有关更多信息,请参阅this

答案 1 :(得分:1)

你可以使用这个bimap构造函数http://msdn.microsoft.com/en-us/library/zy1a2d14.aspx,只需使用GCHandle从文件中获取字节数来获取IntPtr或类似的内容:

 Bitmap BytesToBitmap (byte[] bmpBytes, Size imageSize)
{
    Bitmap bmp = new Bitmap (imageSize.Width, imageSize.Height);

    BitmapData bData  = bmp.LockBits (new Rectangle (0,0, bmp.Size.Width,bmp.Size.Length),
        ImageLockMode.WriteOnly,
        PixelFormat.Format32bppRgb);

    // Copy the bytes to the bitmap object
    Marshal.Copy (bmpBytes, 0, bData.Scan0, bmpBytes.Length);
    bmp.UnlockBits(bData);
    return bmp;
}