poprawiłem, trzeba było zmiecić width na
stride = originalImage.PixelWidth * (originalImage.Format.BitsPerPixel + 7) / 8;
a typ tablicy pixelData na byte
teraz mam taki error, nigdzie nie mogę znaleźć odpowiedzi
Wartość jest spoza oczekiwanego zakresu
kod:
int width = originalImage.PixelHeight;
int height = originalImage.PixelWidth;
int stride = originalImage.PixelWidth * (originalImage.Format.BitsPerPixel + 7) / 8;
byte[] inputPixels = new byte[stride * height];
originalImage.CopyPixels( inputPixels, stride, 0);
byte[] outputPixels = new byte[stride * height];
for(int i=0;i<inputPixels.Length;++i)
{
outputPixels[i] = inputPixels[i];
}
BitmapSource bitmapSource = new FormatConvertedBitmap(originalImage, PixelFormats.Pbgra32, null, 0);
WriteableBitmap bmp2= new WriteableBitmap(
originalImage.PixelWidth,
originalImage.PixelHeight,
originalImage.DpiX, originalImage.DpiY,
originalImage.Format, null);
bmp2.WritePixels(new Int32Rect(0, 0, width, height), outputPixels,stride, 0);