Exemplo n.º 1
0
        public static BitmapImage Contrast(this BitmapImage bitmapimage, int factor)
        {
            Bitmap             bitmap             = bitmapimage.BitmapImage2Bitmap();
            ContrastCorrection contrastCorrection = new ContrastCorrection(factor);

            contrastCorrection.ApplyInPlace(bitmap);
            return(bitmap.ToBitmapImage());
        }
Exemplo n.º 2
0
        public static BitmapImage DilatationImage(this BitmapImage bitmapimage)
        {
            Bitmap     bitmap     = bitmapimage.BitmapImage2Bitmap();
            Dilatation dilatation = new Dilatation();

            dilatation.Apply(bitmap);
            return(bitmap.ToBitmapImage());
        }
Exemplo n.º 3
0
        /// <summary>
        /// Generate a binary BitmapImage
        /// </summary>
        /// <param name="bitmapImage"></param>
        /// <param name="thresholdLevel"></param>
        /// <returns></returns>
        public static BitmapImage Binary(this BitmapImage bitmapImage, int thresholdLevel)
        {
            Bitmap    bitmap    = bitmapImage.BitmapImage2Bitmap();
            Threshold threshold = new Threshold(thresholdLevel);
            IFilter   filter    = Grayscale.CommonAlgorithms.BT709;

            bitmap = filter.Apply(bitmap);
            return(threshold.Apply(bitmap).ToBitmapImage());
        }
Exemplo n.º 4
0
        public static string QRDecode(BitmapImage image)
        {
            string        result = "";
            BarcodeReader Reader = new BarcodeReader();

            try
            {
                result = Reader.Decode(image.BitmapImage2Bitmap()).ToString().Trim();
            }
            catch (Exception ex)
            {
                result = "";
            }
            return(result);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Generate a gray <c>BitmapImage</c>
        /// </summary>
        /// <param name="bitmapImage"></param>
        /// <returns> </returns>
        public static BitmapImage GrayScale(this BitmapImage bitmapImage)
        {
            // Bitmap bitmap = bitmapImage.BitmapImage2Bitmap();

            Image <Bgr, byte> myImage = new Image <Bgr, byte>(bitmapImage.BitmapImage2Bitmap());

            Mat imgGrayscale  = new Mat(myImage.Size, DepthType.Cv8U, 1);
            Mat imgGrayscale2 = new Mat(myImage.Size, DepthType.Cv8U, 1);

            // CvInvoke.BitwiseNot(myImage, imgGrayscale);
            CvInvoke.CvtColor(myImage, imgGrayscale2, ColorConversion.Bgr2Lab);


            CvInvoke.CvtColor(imgGrayscale2, imgGrayscale, ColorConversion.Bgr2Rgb);

            return(imgGrayscale.Bitmap.ToBitmapImage()); //Grayscale.CommonAlgorithms.BT709.Apply(bitmap).ToBitmapImage();
        }
Exemplo n.º 6
0
        /// <summary>
        /// Saves an image as a jpeg image, with the given quality
        /// </summary>
        /// <param name="path"> Path to which the image would be saved. </param>
        /// <param name="quality"> An integer from 0 to 100, with 100 being the highest quality. </param>
        public static void SaveJpeg(this BitmapImage img, string path, int quality)
        {
            var bitmap = img.BitmapImage2Bitmap();

            if (quality < 0 || quality > 100)
            {
                throw new ArgumentOutOfRangeException("quality must be between 0 and 100.");
            }

            // Encoder parameter for image quality
            EncoderParameter qualityParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
            // JPEG image codec
            ImageCodecInfo    jpegCodec     = GetEncoderInfo("image/jpeg");
            EncoderParameters encoderParams = new EncoderParameters(1);

            encoderParams.Param[0] = qualityParam;
            bitmap.Save(path, jpegCodec, encoderParams);
        }
Exemplo n.º 7
0
        public static BitmapImage Invert(this BitmapImage bitmapImage)
        {
            Bitmap bitmap = bitmapImage.BitmapImage2Bitmap();

            for (int y = 0; (y <= (bitmap.Height - 1)); y++)
            {
                for (int x = 0; (x <= (bitmap.Width - 1)); x++)
                {
                    Color inv = bitmap.GetPixel(x, y);
                    inv = Color.FromArgb(255, (255 - inv.R), (255 - inv.G), (255 - inv.B));
                    //if (inv.R > 240)
                    //{
                    //    inv = Color.FromArgb(0, (inv.R), 0, 0);
                    //}
                    //else
                    //{
                    //    inv = Color.FromArgb(0, (0), 0, 0);
                    //}
                    //int R = 0;
                    //int G = 0;
                    //int B = 0;
                    //if (inv.R / 2 > 105)
                    //{
                    //    R = 1;
                    //}

                    //if (inv.G / 2 > 105)
                    //{
                    //    G= 1;
                    //   }

                    //if (inv.B / 2 > 105)
                    //        {
                    //       B = 1;
                    //   }
                    //   inv = Color.FromArgb(255, R,G,B);

                    bitmap.SetPixel(x, y, inv);
                }
            }

            return(bitmap.ToBitmapImage());
        }
Exemplo n.º 8
0
 public static BitmapImage RotateBitmap(this BitmapImage bmp, float angle)
 {
     return(bmp.BitmapImage2Bitmap().RotateBitmap(angle).Bitmap2BitmapImage());
 }
Exemplo n.º 9
0
 public static ImageSource ImageSourceFromBitmap(this BitmapImage bmp) => ImageSourceFromBitmap(bmp.BitmapImage2Bitmap());