Znajdowanie określonych kolorów pikseli w BitmapImage
Mam WPF BitmapImage, który załadowałem z pliku .JPG w następujący sposób:
this.m_image1.Source = new BitmapImage(new Uri(path));
Chcę zapytać, jaki jest kolor w określonych punktach. Na przykład, jaka jest wartość RGB w pikselu (65,32)?
Jak mam to zrobić? Podejmowałem takie podejście:
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);
Chociaż przyznam się, że jest trochę małpki, małpa robi to z tym kodem. W każdym razie, czy istnieje prosty sposób przetwarzania tej tablicy bajtów w celu konwersji na wartości RGB?