我正在使用CopyPixels方法从PNG BitmapSource准备像素数据。 但是,对数组的读取调用不会返回像素数据。
为什么会发生这种情况?
我已包含以下图片
编辑:
字节数组不包含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);
}
}