Я готовлю данные пикселей из PNG BitmapSource, используя метод CopyPixels.Однако вызов чтения в массив не возвращает данные о пикселях.
Есть ли причины, по которым это может произойти?
Я включил изображение ниже
Редактировать:
Массив байтов нене содержит данных пикселей 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);
}
}