BitmapSource copypixels方法不返回RGB像素数据

时间:2019-02-19 22:04:28

标签: c# image-processing bitmapsource

我正在使用CopyPixels方法从PNG BitmapSource准备像素数据。 但是,对数组的读取调用不会返回像素数据。

为什么会发生这种情况?

我已包含以下图片

PNG Sample

编辑:

字节数组不包含RGB像素数据。数组仅包含每个索引项的值0。

代码:

using(FileStream stream = new FileStream(strImageFilename, FileMode.Open, FileAccess.Read, FileShare.Read))
    {
        if (stream.Length > 0)
        {
            BitmapDecoder bmpDecoder = BitmapDecoder.Create(stream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default);

            BitmapSource bmpSourceFrame = bmpDecoder.Frames[0];

            int iStride = bmpSourceFrame.PixelWidth * ((bmpSourceFrame.Format.BitsPerPixel + 7) / 8);
            byte[] bytImage = new byte[iStride * bmpSourceFrame.PixelHeight];

            bmpSourceFrame.CopyPixels(bytImage, iStride, 0);
        }
     }

0 个答案:

没有答案