Esempio n. 1
0
        private void DrawImage()
        {
            Glyph.Children.Clear();
            if (selectedGlyph == null)
            {
                return;
            }

            BitmapSource bitmapSource = selectedGlyph.Image;
            var          colors       = bitmapSource.GetColors();
            var          width        = bitmapSource.PixelWidth;
            var          height       = bitmapSource.PixelHeight;

            Glyph.Children.Add(Utilities.DrawBitmap(width, height, colors));

            left.Geometry   = new LineGeometry(new Point(LeftCut, 0), new Point(LeftCut, MaxWidth));
            rigth.Geometry  = new LineGeometry(new Point(RightCut, 0), new Point(RightCut, MaxWidth));
            top.Geometry    = new LineGeometry(new Point(0, TopCut), new Point(MaxHeight, TopCut));
            bottom.Geometry = new LineGeometry(new Point(0, BottomCut), new Point(MaxHeight, BottomCut));

            Glyph.Children.Add(left);
            Glyph.Children.Add(rigth);
            Glyph.Children.Add(top);
            Glyph.Children.Add(bottom);
        }
Esempio n. 2
0
        public static BitmapSource ApplyLindeBuzoGray(BitmapSource bitmap, object parameter)
        {
            var paletteSize = (int)parameter;

            Vector <byte>[] palette;
            return(bitmap.Create(LbgAlgorithm.Build(paletteSize, bitmap.GetColors(), out palette)));
        }
Esempio n. 3
0
        public static BitmapSource QuantizeInRgb(BitmapSource bitmap, object parameter)
        {
            var quantizationVector = parameter as Vector <byte>;
            var colors             = bitmap.GetColors().Select(c => Quantization.QuantizeVector(c, quantizationVector)).ToArray();

            return(bitmap.Create(colors));
        }
Esempio n. 4
0
        public static BitmapSource ApplyMedianCut(BitmapSource bitmap, object parameter)
        {
            var paletteSize = (int)parameter;

            Vector <byte>[] palette;
            return(bitmap.Create(MedianCut.Build(paletteSize, bitmap.GetColors(), out palette)));
        }
Esempio n. 5
0
        public static BitmapSource ApplyToYCbCrAndBack(BitmapSource bitmap)
        {
            var sourceColors = bitmap.GetColors();
            var transformed  = Transformation.RGBToYCbCr(sourceColors);
            var back         = Transformation.YCbCrToRGB(transformed);

            return(bitmap.Create(back));
        }
Esempio n. 6
0
 public static BitmapSource ApplyMonochromeBad(BitmapSource bitmap)
 {
     return(bitmap.Create(bitmap
                          .GetColors()
                          .Select(v => (byte)((v[0] + v[1] + v[2]) / 3))
                          .Select(c => new Vector <byte>(new[] { c, c, c }))
                          .ToArray()));
 }
Esempio n. 7
0
 public static BitmapSource ApplyMonochromeGood(BitmapSource bitmap)
 {
     return(bitmap.Create(bitmap
                          .GetColors()
                          .Select(v => (byte)((v[0] * 77 + v[1] * 150 + v[2] * 29) >> 8))
                          .Select(c => new Vector <byte>(new [] { c, c, c }))
                          .ToArray()));
 }
Esempio n. 8
0
        public static BitmapSource QuantizeInYCbCr(BitmapSource bitmap, object parameter)
        {
            var quantizationVector = parameter as Vector <byte>;
            var colors             = Transformation.YCbCrToRGB(
                Transformation.RGBToYCbCr(bitmap.GetColors())
                .Select(c => Quantization.QuantizeVector(c, quantizationVector)).ToArray()
                );

            return(bitmap.Create(colors));
        }
Esempio n. 9
0
        public static BitmapSource ApplyWavelet(BitmapSource bitmap, WaveletParameters waveletParameters)
        {
            if (bitmap.Format != PixelFormats.Gray8)
            {
                var colors = bitmap.GetColors();
                //var yCrCb = Transformation.RGBToYCbCr(colors);
                var channels = GetChannels(colors, bitmap.PixelHeight, bitmap.PixelWidth);
                for (var channel = 0; channel < 3; ++channel)
                {
                    DoApplyWavelet(channels[channel], waveletParameters);
                }
                SaveWavelet(bitmap, waveletParameters, channels);
                return(bitmap.Create(ToColors(channels)));
            }
            var bytes  = bitmap.GetBytes();
            var channl = GetChannel(bytes, bitmap.PixelHeight, bitmap.PixelWidth);

            DoApplyWavelet(channl, waveletParameters);
            SaveWavelet(bitmap, waveletParameters, new Vector <double[, ]>(new[] { channl }));
            return(bitmap.Create(ToGrey(channl)));
        }
Esempio n. 10
0
 public static BitmapSource ApplyMonochromeY(BitmapSource bitmap)
 {
     return(bitmap.Create(Transformation.RGBToYCbCr(bitmap.GetColors())
                          .Select(v => new Vector <byte>(new[] { v[0], v[0], v[0] }))
                          .ToArray()));
 }