public static BitmapImage Contrast(this BitmapImage bitmapimage, int factor) { Bitmap bitmap = bitmapimage.BitmapImage2Bitmap(); ContrastCorrection contrastCorrection = new ContrastCorrection(factor); contrastCorrection.ApplyInPlace(bitmap); return(bitmap.ToBitmapImage()); }
public static BitmapImage DilatationImage(this BitmapImage bitmapimage) { Bitmap bitmap = bitmapimage.BitmapImage2Bitmap(); Dilatation dilatation = new Dilatation(); dilatation.Apply(bitmap); return(bitmap.ToBitmapImage()); }
/// <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()); }
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); }
/// <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(); }
/// <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); }
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()); }
public static BitmapImage RotateBitmap(this BitmapImage bmp, float angle) { return(bmp.BitmapImage2Bitmap().RotateBitmap(angle).Bitmap2BitmapImage()); }
public static ImageSource ImageSourceFromBitmap(this BitmapImage bmp) => ImageSourceFromBitmap(bmp.BitmapImage2Bitmap());