Пример #1
0
        public static ImageRaster2D <RangeType> ConvertWriteableBitmapToImageRaster2D <RangeType>(WriteableBitmap writeable_bitmap, IFunction <int, RangeType> converter)
        {
            int width  = writeable_bitmap.PixelWidth;
            int height = writeable_bitmap.PixelHeight;

            System.Windows.Media.PixelFormat format = System.Windows.Media.PixelFormats.Bgr24;

            int stride = (format.BitsPerPixel / 8) * width;
            int bytes  = stride * height;

            int[] pixels = new int[width * height];
            writeable_bitmap.CopyPixels(new Int32Rect(0, 0, width, height), pixels, bytes, stride);
            return(new ImageRaster2D <RangeType>(width, height, ToolsMathFunction.Convert(pixels, converter), false));
        }
Пример #2
0
        public static WriteableBitmap ConvertImageRaster2DToWriteableBitmap <RangeType>(ImageRaster2D <RangeType> image_raster_base, IFunction <RangeType, int> converter)
        {
            int width  = image_raster_base.Raster.Size0;
            int height = image_raster_base.Raster.Size1;

            System.Windows.Media.PixelFormat format = System.Windows.Media.PixelFormats.Bgr24;

            WriteableBitmap result = new WriteableBitmap(width, height, 96, 96, System.Windows.Media.PixelFormats.Bgr24, null);

            int[] pixels = ToolsMathFunction.Convert(image_raster_base.GetElementValues(false), converter);
            int   stride = (format.BitsPerPixel / 8) * width;
            int   bytes  = stride * height;

            //TODO convert
            result.Lock();
            result.WritePixels(new Int32Rect(0, 0, width, height), pixels, bytes, stride);
            result.Unlock();
            return(result);
        }