Witam,
ucząc się WPF natknąłem się na problem, którego na obecnym poziomie wiedzy nie jestem w stanie przejść. Otóż mam obiekt typu BitmapImage i chciałbym zmieniać wartości poszczególnych jego pixeli. w WindowsForms był obiekt Bitmap, który zawierał metody GetPixel() oraz SetPixel(), w WPF jednak nie ma takich udogodnień.
Szukając rozwiązania swojego problemu znalazłem przykład jak pobrać poszczególne pixele z obrazu:
ImageSource ims = m_image1.Source;
BitmapImage bitmapImage = (BitmapImage)ims;
int height = bitmapImage.PixelHeight;
int width = bitmapImage.PixelWidth;
int nStride = (bitmapImage.PixelWidth * bitmapImage.Format.BitsPerPixel + 7) / 8;
byte[] pixelByteArray = new byte[bitmapImage.PixelHeight * nStride];
bitmapImage.CopyPixels(pixelByteArray, nStride, 0);
Nie wiem tylko w jaki sposób przesłać z powrotem tę tablicę do obiektu BitmapImage. Jeżeli ktoś wie, bardzo proszę o podzielenie się tą wiedzą. Chyba, że istnieje jeszcze jakiś inny sposób na wykonanie tej czynności, bez kopiowania itp.
Dziękuję za wszelkie porady.
Pozdrawiam