private static void Test_ToBitmap(MagickImage image, ImageFormat format) { using (Bitmap bmp = image.ToBitmap(format)) { Assert.AreEqual(format, bmp.RawFormat); } }
public static Bitmap Blur(Bitmap image, double blurSize) { MagickImage magick = new MagickImage(image); magick.Blur(0, blurSize); image = magick.ToBitmap(); return image; }
public static Bitmap FastBlur(Uri image, double percentage) { MagickImage magick = new MagickImage(new Bitmap(image.AbsolutePath)); magick.Resize(new Percentage(50.0 / percentage)); magick.Resize(new Percentage(200 * percentage)); return magick.ToBitmap(); }
public static BitmapImage FastBlur(BitmapImage image, double percentage) { MagickImage magick = new MagickImage(ImageUtilities.BitmapImage2Bitmap(image)); magick.Resize(new Percentage(50.0 / percentage)); magick.Resize(new Percentage(200 * percentage)); return magick.ToBitmap().ToBitmapImage(); }
public static Image LoadFromFileAsImage(string filename, bool wrapping = true) { if (wrapping && SafeMagickWrapper != null) { return SafeMagickWrapper(() => LoadFromFileAsImage(filename, false)) as Image; } using (var image = new MagickImage(filename)) { return image.ToBitmap(); } }
public static Engine.Surface.Canvas Blur(Engine.Surface.Canvas c, double radius, double sigma) { Bitmap bmp = Engine.Surface.Ops.ToBitmap(c); using (ImageMagick.MagickImage image = new ImageMagick.MagickImage(bmp)) { image.Blur(radius, sigma); bmp = image.ToBitmap(); } return(Engine.Surface.Ops.ToCanvas(bmp)); }
public static Bitmap reducenoise(Image sourceimg) { if (sourceimg != null) { ImageMagick.MagickImage originalMagickImage; originalMagickImage = new ImageMagick.MagickImage((Bitmap)sourceimg); originalMagickImage.ReduceNoise(); Bitmap bitmap = originalMagickImage.ToBitmap(); return(bitmap); } else { return((Bitmap)sourceimg); } }
public static Bitmap cannyedge(Image sourceimg) { if (sourceimg != null) { ImageMagick.MagickImage originalMagickImage; originalMagickImage = new ImageMagick.MagickImage((Bitmap)sourceimg); originalMagickImage.CannyEdge(); Bitmap bitmap = originalMagickImage.ToBitmap(); return(bitmap); } else { return((Bitmap)sourceimg); } }
public static Bitmap arc(Image sourceimg) { if (sourceimg != null) { ImageMagick.MagickImage originalMagickImage; originalMagickImage = new ImageMagick.MagickImage((Bitmap)sourceimg); originalMagickImage.Distort(DistortMethod.Arc, 360); Bitmap bitmap = originalMagickImage.ToBitmap(); return(bitmap); } else { return((Bitmap)sourceimg); } }
public static Bitmap sepiatone(Image sourceimg) { if (sourceimg != null) { ImageMagick.MagickImage originalMagickImage; originalMagickImage = new ImageMagick.MagickImage((Bitmap)sourceimg); originalMagickImage.SepiaTone(); Bitmap bitmap = originalMagickImage.ToBitmap(); return(bitmap); } else { return((Bitmap)sourceimg); } }
public static Bitmap charcoal(Image sourceimg) { if (sourceimg != null) { ImageMagick.MagickImage originalMagickImage; originalMagickImage = new ImageMagick.MagickImage((Bitmap)sourceimg); originalMagickImage.Charcoal(5, 0); Bitmap bitmap = originalMagickImage.ToBitmap(); return(bitmap); } else { return((Bitmap)sourceimg); } }
public static Bitmap oilpaint(Image sourceimg) { if (sourceimg != null) { ImageMagick.MagickImage originalMagickImage; originalMagickImage = new ImageMagick.MagickImage((Bitmap)sourceimg); originalMagickImage.OilPaint(); Bitmap bitmap = originalMagickImage.ToBitmap(); return(bitmap); } else { return((Bitmap)sourceimg); } }
public static Bitmap decode(Image sourceimg, string code) { if (sourceimg != null) { ImageMagick.MagickImage originalMagickImage; originalMagickImage = new ImageMagick.MagickImage((Bitmap)sourceimg); originalMagickImage.Decipher(code); Bitmap bitmap = originalMagickImage.ToBitmap(); return(bitmap); } else { return((Bitmap)sourceimg); } }
public static Bitmap FastBlur(Bitmap image, double percentage) { MagickImage magick = new MagickImage(image); magick.Resize(new Percentage(50.0 / percentage)); magick.Resize(new Percentage(200 * percentage)); return magick.ToBitmap(); /* magick.Grayscale(ImageMagick.PixelIntensityMethod.Average); MagickImage temp = new MagickImage(Game.Instance.ResourceController.BuildPath(@"..\..\Global Resources\Assets\Images\black_50alpha.png")); temp.Alpha(AlphaOption.Activate); temp.Resize(magick.Width * 2, magick.Height * 2); magick.Composite(temp, CompositeOperator.Darken); */ }
/// <summary> /// 色相、饱和度、亮度、对比度 /// </summary> /// <param name="sourceimg"></param> /// <param name="threshold"></param> /// <returns></returns> public static Bitmap HSLC(Image sourceimg, int H, int S, int L, int C) { if (sourceimg != null) { ImageMagick.MagickImage originalMagickImage; originalMagickImage = new ImageMagick.MagickImage((Bitmap)sourceimg); // 只调整图像的Hue色相值 ImageMagick.Percentage brightness = new ImageMagick.Percentage(L); // 100%表示不改变该属性 ImageMagick.Percentage saturation = new ImageMagick.Percentage(S); ImageMagick.Percentage hue = new ImageMagick.Percentage(H); // 滑动条范围值0%~200% ImageMagick.MagickImage newImage = new ImageMagick.MagickImage(originalMagickImage); // 相当于深复制 newImage.Modulate(brightness, saturation, hue); // 重新给Image控件赋值新图像 Bitmap bitmap1 = newImage.ToBitmap(); Bitmap bitmap = Contrast(bitmap1, C); return(bitmap); } else { return((Bitmap)sourceimg); } }
public void Test_ToBitmap() { using (MagickImage image = new MagickImage(Color.Red, 10, 10)) { ExceptionAssert.Throws<NotSupportedException>(delegate () { image.ToBitmap(ImageFormat.Exif); }); Bitmap bitmap = image.ToBitmap(); Assert.AreEqual(ImageFormat.MemoryBmp, bitmap.RawFormat); ColorAssert.AreEqual(Color.Red, bitmap.GetPixel(0, 0)); ColorAssert.AreEqual(Color.Red, bitmap.GetPixel(5, 5)); ColorAssert.AreEqual(Color.Red, bitmap.GetPixel(9, 9)); bitmap.Dispose(); Test_ToBitmap(image, ImageFormat.Bmp); Test_ToBitmap(image, ImageFormat.Gif); Test_ToBitmap(image, ImageFormat.Icon); Test_ToBitmap(image, ImageFormat.Jpeg); Test_ToBitmap(image, ImageFormat.Png); Test_ToBitmap(image, ImageFormat.Tiff); } using (MagickImage image = new MagickImage(new MagickColor(0, Quantum.Max, Quantum.Max, 0), 10, 10)) { Bitmap bitmap = image.ToBitmap(); Assert.AreEqual(ImageFormat.MemoryBmp, bitmap.RawFormat); Color color = Color.FromArgb(0, 0, 255, 255); ColorAssert.AreEqual(color, bitmap.GetPixel(0, 0)); ColorAssert.AreEqual(color, bitmap.GetPixel(5, 5)); ColorAssert.AreEqual(color, bitmap.GetPixel(9, 9)); bitmap.Dispose(); } }
public IHttpActionResult ImageGenerate() { QpiroJSON resp = new QpiroJSON(); UserProperty.ImgType itype = new UserProperty.ImgType(); PixFormat PixelFormat = new PixFormat(); string imgName = ""; try { /////////////////////////////////////////////// int bsy = UserProperty.XmlGetValue("Busy"); if (bsy == 1) throw new Exception("Bir işlem halen devam etmekte bitmesini bekleyiniz.") { Source = "Busy" }; /////////////////////////////////////////////////// int tck = UserProperty.XmlGetValue("Ticket"); if (tck == -3) { throw new Exception("Kullanıcı bilgileri bulunamadı.") { Source = "Ticket1" }; } else { if (!UserProperty.EmailVerified) throw new Exception("Eposta adresinizi onaylamanız gerekmektedir") { Source = "EVerified" }; if (-1 >= tck - 1) { throw new Exception("Biletiniz bitmiş işlem yapamıyoruz.") { Source = "Ticket2" }; } else { UserProperty.XmlUpdate("Ticket", -1, true); UserProperty.XmlUpdate("Busy", 1, false); } } //////////////////////////////////////////////////// imgName = Convert.ToString(HttpContext.Current.Request["imagename"]); itype = UserProperty.ImgType.Resources; string typ = HttpContext.Current.Request["pixtype"]; if (typ == null) throw new Exception("Lütfen format seçiniz") { Source = "" }; PixelFormat = (PixFormat)ImageProperty.StringToEnum(typeof(PixFormat), Convert.ToString(typ)); } catch (Exception e) { if (e.Source == "Ticket1" || e.Source == "Ticket2" || e.Source == "Ticket3" || e.Source == "Ticket4" || e.Source == "Busy" || e.Source == "EVerified") { } else { UserProperty.XmlUpdate("Ticket", 1, true); UserProperty.XmlUpdate("Busy", 0, false); } resp.Message = e.Message; return this.Json<QpiroJSON>(resp); } try { string imgPath = ""; switch (itype) { case UserProperty.ImgType.Resources: imgPath = Path.Combine(UserProperty.ResourcePhotos_Path, imgName + ImageProperty.JPG); break; default: throw new Exception("Tanımlanamayan imagename formatı") { Source = "" }; break; } if (File.Exists(imgPath)) { DateTime start = DateTime.Now; System.GC.Collect(); List<PartOfImage> imgsInf = ImageProperty.PartOfImage(imgPath, imgName, (int)PixelFormat); ServerAsyncCallBack servers = new ServerAsyncCallBack(); servers.Execute(_QPR.Type.AsyncCallType.ImageGenerate, imgsInf, (int)PixelFormat); imgsInf.Clear(); if (UserProperty.ComputerNumber == 1) { do { Thread.Sleep(999); } while (servers._respLocalTest.Status == TaskStatus.WaitingForActivation); } else { do { Thread.Sleep(999); } while ( servers._resp1.Status == TaskStatus.WaitingForActivation || servers._resp2.Status == TaskStatus.WaitingForActivation || servers._resp3.Status == TaskStatus.WaitingForActivation || servers._resp4.Status == TaskStatus.WaitingForActivation || servers._resp5.Status == TaskStatus.WaitingForActivation || servers._resp6.Status == TaskStatus.WaitingForActivation || servers._resp7.Status == TaskStatus.WaitingForActivation || servers._resp8.Status == TaskStatus.WaitingForActivation ); } DateTime end = DateTime.Now; string time = TimeSpan.FromTicks(end.Ticks - start.Ticks).ToString(); resp.Time = (time.Split(':')[time.Split(':').Length - 2] + ":" + time.Split(':')[time.Split(':').Length - 1]); /////////////////////////////////////// if (UserProperty.ComputerNumber == 1)//local test { byte[] bitmp0 = servers._respLocalTest.Result.Body.ImageGenerateResult.newImage; Rectangle br0 = ImageProperty.stringToRectangle(servers._respLocalTest.Result.Body.ImageGenerateResult.ImagePartInfo); MagickImage img0 = new MagickImage(bitmp0); Bitmap newImg0 = new Bitmap(img0.Width, img0.Height); Graphics grr0 = Graphics.FromImage(newImg0); grr0.DrawImage(img0.ToBitmap(), br0.X, br0.Y); grr0.Dispose(); (resp.Data as List<object>).Add(ImageProperty.ImageToBase64(newImg0, System.Drawing.Imaging.ImageFormat.Jpeg)); } else { byte[] bitmp1 = servers._resp1.Result.Body.ImageGenerateResult.newImage; Rectangle br1 = ImageProperty.stringToRectangle(servers._resp1.Result.Body.ImageGenerateResult.ImagePartInfo); byte[] bitmp2 = servers._resp2.Result.Body.ImageGenerateResult.newImage; Rectangle br2 = ImageProperty.stringToRectangle(servers._resp2.Result.Body.ImageGenerateResult.ImagePartInfo); byte[] bitmp3 = servers._resp3.Result.Body.ImageGenerateResult.newImage; Rectangle br3 = ImageProperty.stringToRectangle(servers._resp3.Result.Body.ImageGenerateResult.ImagePartInfo); byte[] bitmp4 = servers._resp4.Result.Body.ImageGenerateResult.newImage; Rectangle br4 = ImageProperty.stringToRectangle(servers._resp4.Result.Body.ImageGenerateResult.ImagePartInfo); byte[] bitmp5 = servers._resp5.Result.Body.ImageGenerateResult.newImage; Rectangle br5 = ImageProperty.stringToRectangle(servers._resp5.Result.Body.ImageGenerateResult.ImagePartInfo); byte[] bitmp6 = servers._resp6.Result.Body.ImageGenerateResult.newImage; Rectangle br6 = ImageProperty.stringToRectangle(servers._resp6.Result.Body.ImageGenerateResult.ImagePartInfo); byte[] bitmp7 = servers._resp7.Result.Body.ImageGenerateResult.newImage; Rectangle br7 = ImageProperty.stringToRectangle(servers._resp7.Result.Body.ImageGenerateResult.ImagePartInfo); byte[] bitmp8 = servers._resp8.Result.Body.ImageGenerateResult.newImage; Rectangle br8 = ImageProperty.stringToRectangle(servers._resp8.Result.Body.ImageGenerateResult.ImagePartInfo); servers = null; int newW = 0, newH = 0; if (br1.Width < br1.Height) { newW = br1.Width * UserProperty.ComputerNumber; newH = br1.Height; } else { newW = br1.Width; newH = br1.Height * UserProperty.ComputerNumber; } //MagickImage img0 = new MagickImage(bitmp0); MagickImage img1 = new MagickImage(bitmp1); MagickImage img2 = new MagickImage(bitmp2); MagickImage img3 = new MagickImage(bitmp3); MagickImage img4 = new MagickImage(bitmp4); MagickImage img5 = new MagickImage(bitmp5); MagickImage img6 = new MagickImage(bitmp6); MagickImage img7 = new MagickImage(bitmp7); MagickImage img8 = new MagickImage(bitmp8); Bitmap newImg = new Bitmap(newW, newH); Graphics grr = Graphics.FromImage(newImg); //grr.DrawImage(img0.ToBitmap(), br0.X, br0.Y); grr.DrawImage(img1.ToBitmap(), br1.X, br1.Y); grr.DrawImage(img2.ToBitmap(), br2.X, br2.Y); grr.DrawImage(img3.ToBitmap(), br3.X, br3.Y); grr.DrawImage(img4.ToBitmap(), br4.X, br4.Y); grr.DrawImage(img5.ToBitmap(), br5.X, br5.Y); grr.DrawImage(img6.ToBitmap(), br6.X, br6.Y); grr.DrawImage(img7.ToBitmap(), br7.X, br7.Y); grr.DrawImage(img8.ToBitmap(), br8.X, br8.Y); grr.Dispose(); (resp.Data as List<object>).Add(ImageProperty.ImageToBase64(newImg, System.Drawing.Imaging.ImageFormat.Jpeg)); } /////////////////////////////////////// UserProperty.XmlUpdate("Busy", 0, false); time = ""; } else { throw new Exception("Belirtilen resim bulunamadı") { Source = "" }; } } catch (Exception e) { UserProperty.XmlUpdate("Busy", 0, false); UserProperty.XmlUpdate("Ticket", 1, true); resp.Message = e.Message; } return this.Json<QpiroJSON>(resp); }
public void Test_ToBitmap() { using (MagickImage image = new MagickImage(MagickColors.Red, 10, 10)) { ExceptionAssert.Throws<NotSupportedException>(delegate () { image.ToBitmap(ImageFormat.Exif); }); using (Bitmap bitmap = image.ToBitmap()) { Assert.AreEqual(ImageFormat.MemoryBmp, bitmap.RawFormat); ColorAssert.AreEqual(MagickColors.Red, bitmap.GetPixel(0, 0)); ColorAssert.AreEqual(MagickColors.Red, bitmap.GetPixel(5, 5)); ColorAssert.AreEqual(MagickColors.Red, bitmap.GetPixel(9, 9)); } Test_ToBitmap(image, ImageFormat.Bmp); Test_ToBitmap(image, ImageFormat.Gif); Test_ToBitmap(image, ImageFormat.Icon); Test_ToBitmap(image, ImageFormat.Jpeg); Test_ToBitmap(image, ImageFormat.Png); Test_ToBitmap(image, ImageFormat.Tiff); } using (MagickImage image = new MagickImage(new MagickColor(0, Quantum.Max, Quantum.Max, 0), 10, 10)) { using (Bitmap bitmap = image.ToBitmap()) { Assert.AreEqual(ImageFormat.MemoryBmp, bitmap.RawFormat); MagickColor color = MagickColor.FromRgba(0, 255, 255, 0); ColorAssert.AreEqual(color, bitmap.GetPixel(0, 0)); ColorAssert.AreEqual(color, bitmap.GetPixel(5, 5)); ColorAssert.AreEqual(color, bitmap.GetPixel(9, 9)); } } using (MagickImage image = new MagickImage(Files.CMYKJPG)) { using (Bitmap bitmap = image.ToBitmap()) { Assert.AreEqual(ImageFormat.MemoryBmp, bitmap.RawFormat); ColorAssert.AreEqual(new MagickColor("#26ffb1"), bitmap.GetPixel(1142, 42)); } } }
private Bitmap processImgForScanning(Bitmap imgInput) { using (MemoryStream memstream = new MemoryStream()) { imgInput.Save(memstream, ImageFormat.Tiff); MagickImage img = new MagickImage(memstream.ToArray()); if (sharpen) { img.Sharpen((int)sharpenIntX.Value, (int)sharpenIntY.Value, Channels.All); } if (autoGamma) { img.AutoGamma(); } if (enhance) { img.Enhance(); } if (contrast) { img.Contrast(); } if (autoLevel) { img.AutoLevel(); } if (autoOrient) { img.AutoOrient(); } if (despeckle) { img.Despeckle(); } if (medianFilter) { img.MedianFilter((int)medianInt.Value); } if (unsharpmask) { img.Unsharpmask(6.8, 4, 4,0); } if (wtThreshold) { img.LinearStretch((float)0.9, 0.1); //img.WhiteThreshold((int)wtThresInt.Value); //img.ReduceNoise(); //img.Grayscale(PixelIntensityMethod.Brightness); } if (invert) { img.Negate(); } return img.ToBitmap(); } }
public static NewImagePart PointGenerator(string UserName, byte[] ImagePart, int _x, int _y, int width, int height, int PxFormat) { try { Rectangle recti = new Rectangle(_x, _y, width, height); PixFormat _pixFor = (PixFormat)StringToEnum(typeof(PixFormat), Convert.ToString("_" + PxFormat.ToString() + "x" + PxFormat.ToString())); qprPath resources = new qprPath(UserName); if (_pixFor == PixFormat._null) throw new Exception("Format null olamaz") { Source = "" }; //GC.Collect(); //Bitmap bmp; //using (var ms = new MemoryStream(ImagePart)) //{ // bmp = new Bitmap(ms); //} using (MagickImage imagem = new MagickImage(ImagePart)) { imagem.Quality = 100; imagem.Blur(5, 5); List<ImgSquare> sp0 = new List<ImgSquare>(); if (true) { int[,] pixavg = new int[5, 3]; int _pixformat = (int)_pixFor; WritablePixelCollection _totalpix = imagem.GetWritablePixels(0, 0, imagem.Width, imagem.Height); int range = _pixformat / 2; for (int w = 0; w < imagem.Width; w += _pixformat) { for (int h = 0; h < imagem.Height; h += _pixformat) { if (!(w + _pixformat <= imagem.Width && h + _pixformat <= imagem.Height)) continue;//olmazda olursa diye pixavg = new int[5, 3]; for (int x = 0; x < range; x++) { for (int y = 0; y < range; y++) { Color a = _totalpix.GetPixel(x + w + 0, h + 0 + y).ToColor().ToColor(); pixavg[0, 0] += a.R; pixavg[0, 1] += a.G; pixavg[0, 2] += a.B; Color b = _totalpix.GetPixel(x + w + range, h + y).ToColor().ToColor(); pixavg[1, 0] += b.R; pixavg[1, 1] += b.G; pixavg[1, 2] += b.B; Color c = _totalpix.GetPixel(x + w, h + range + y).ToColor().ToColor(); pixavg[2, 0] += c.R; pixavg[2, 1] += c.G; pixavg[2, 2] += c.B; Color d = _totalpix.GetPixel(x + w + range, h + range + y).ToColor().ToColor(); pixavg[3, 0] += d.R; pixavg[3, 1] += d.G; pixavg[3, 2] += d.B; } } //tümü için aynı toplanıyor pixavg[4, 0] = pixavg[0, 0] + pixavg[1, 0] + pixavg[2, 0] + pixavg[3, 0]; pixavg[4, 1] = pixavg[0, 1] + pixavg[1, 1] + pixavg[2, 1] + pixavg[3, 1]; pixavg[4, 2] = pixavg[0, 2] + pixavg[1, 2] + pixavg[2, 2] + pixavg[3, 2]; //---- int totalminiPix = (range * range); pixavg[0, 0] /= totalminiPix; pixavg[0, 1] /= totalminiPix; pixavg[0, 2] /= totalminiPix; pixavg[1, 0] /= totalminiPix; pixavg[1, 1] /= totalminiPix; pixavg[1, 2] /= totalminiPix; pixavg[2, 0] /= totalminiPix; pixavg[2, 1] /= totalminiPix; pixavg[2, 2] /= totalminiPix; pixavg[3, 0] /= totalminiPix; pixavg[3, 1] /= totalminiPix; pixavg[3, 2] /= totalminiPix; int totalPix = totalminiPix * 4; pixavg[4, 0] /= totalPix; pixavg[4, 1] /= totalPix; pixavg[4, 2] /= totalPix; sp0.Add(new ImgSquare(w, h, new List<QuardPixAvg>() { new QuardPixAvg(Color.FromArgb((pixavg[0, 0]), (pixavg[0, 1]), (pixavg[0, 2])), QuardBolum.SolUst), new QuardPixAvg (Color.FromArgb((pixavg[1, 0]), (pixavg[1, 1]), (pixavg[1, 2])), QuardBolum.SagUst), new QuardPixAvg(Color.FromArgb((pixavg[2, 0]), (pixavg[2, 1]), (pixavg[2, 2])), QuardBolum.SolAlt), new QuardPixAvg(Color.FromArgb((pixavg[3, 0]), (pixavg[3, 1]), (pixavg[3, 2])), QuardBolum.SagAlt), new QuardPixAvg(Color.FromArgb((pixavg[4, 0]), (pixavg[4, 1]), (pixavg[4, 2])), QuardBolum.TotalAvg) })); } } _totalpix = null; pixavg = null; ////////////////////////////// xml generate /////////////////////////////// #region xml oluşturma //XmlDocument doc = new XmlDocument(); //XmlElement root = doc.CreateElement("SquarePoints"); //root.SetAttribute("Count", sp0.Count.ToString()); //root.SetAttribute("PixFormat", _pixFor.ToString()); //foreach (ImgSquare item in sp0) //{ // XmlElement child = doc.CreateElement("SquarePoint"); // child.SetAttribute("WxH", item.ToString()); // child.SetAttribute("ColorAVG", item.SAvgArb.ToString()); // List<QuardPixAvg> lstQ = item.QuardAvg; // child.SetAttribute("SolUst", lstQ[0].QuardAvg.ToString()); // child.SetAttribute("SagUst", lstQ[1].QuardAvg.ToString()); // child.SetAttribute("SolAlt", lstQ[2].QuardAvg.ToString()); // child.SetAttribute("SagAlt", lstQ[3].QuardAvg.ToString()); // root.AppendChild(child); //} //doc.AppendChild(root); //if (!Directory.Exists(finf.Directory.FullName)) // Directory.CreateDirectory(finf.Directory.FullName); //doc.Save(path); //doc = null; #endregion xml oluşturma } else { #region xml okuma //XmlDocument doc = new XmlDocument(); //doc.Load(path); //XmlNodeList root1 = doc.GetElementsByTagName("SquarePoints"); //XmlNode root2 = root1.Item(0); //foreach (XmlNode item in root2.ChildNodes) //{ // try // { // XmlAttribute at1 = item.Attributes[0]; // string[] point = at1.InnerText.Split('x'); // XmlAttribute at2 = item.Attributes[1]; // string ColorAvg = at2.InnerText; // List<QuardPixAvg> lQuard = new List<QuardPixAvg>(); // int SolUst = int.Parse(item.Attributes[2].InnerText); // int SagUst = int.Parse(item.Attributes[3].InnerText); // int SolAlt = int.Parse(item.Attributes[4].InnerText); // int SagAlt = int.Parse(item.Attributes[5].InnerText); // int Tumu = int.Parse(item.Attributes[1].InnerText); // lQuard.Add(new QuardPixAvg(Color.FromArgb(SolUst), QuardBolum.SolUst)); // lQuard.Add(new QuardPixAvg(Color.FromArgb(SagUst), QuardBolum.SagUst)); // lQuard.Add(new QuardPixAvg(Color.FromArgb(SolAlt), QuardBolum.SolAlt)); // lQuard.Add(new QuardPixAvg(Color.FromArgb(SagAlt), QuardBolum.SagAlt)); // lQuard.Add(new QuardPixAvg(Color.FromArgb(Tumu), QuardBolum.Tumu)); // sp0.Add(new ImgSquare(int.Parse(point[0]), int.Parse(point[1]), lQuard)); // } // catch (Exception e) // { // throw e; // } //} //root2 = null; //root1 = null; //doc = null; #endregion xml okuma } //#--------------------------------- int opacity = 50; switch (_pixFor) { case PixFormat._null: sp0.Clear(); throw new Exception("Tanımsız format") { Source = "" }; break; case PixFormat._12x12: opacity = 50; break; case PixFormat._20x20: opacity = 50; break; case PixFormat._36x36: opacity = 50; break; case PixFormat._48x48: opacity = 50; break; case PixFormat._64x64: opacity = 50; break; case PixFormat._94x94: opacity = 50; break; } string MiniPicturePath = Path.Combine(resources.Data_InstagramPhotos); if (Directory.Exists(MiniPicturePath)) { Bitmap btm = imagem.ToBitmap(); using (Graphics gr1 = Graphics.FromImage(btm)) { /////////////////////////////////////////////////////////////// string[] file = Directory.GetFiles(resources.Current_User, resources.UserXmlInfo); if (file.Count() != 1) throw new Exception("Geçersiz kullanıcı bilgileri"); XDocument doc = XDocument.Load(file[0]); XElement root = doc.Elements("_" + resources.UserName).First(); XElement InstagramP = root.Elements("InstagramPhotos").FirstOrDefault(); XElement[] photos = (from p in InstagramP.Elements() where p.Attribute("useThis").Value.ToLower() == "true" select p).ToArray(); /////////////////////////////////////////////////// if (photos.Count() == 0) throw new Exception("Bu Formata Uygun Resimler Bulunamadı") { Source = "" }; List<ImgSquare> spl2 = new List<ImgSquare>(); for (int i = 0; i < photos.Count(); i++) { if (File.Exists(Path.Combine(MiniPicturePath, Path.GetFileName(photos[i].Value)))) { using (MagickImage mini = new MagickImage(Path.Combine(MiniPicturePath, Path.GetFileName(photos[i].Value)))) { mini.Quality = 100; if (mini.Width != 94 && mini.Height != 94) mini.Resize((int)_pixFor, (int)_pixFor); spl2.Add(new ImgSquare(mini.ToBitmap())); mini.Dispose(); } } } photos = null; doc = null; root = null; InstagramP = null; List<ImgSquare> spl4 = new List<ImgSquare>(); spl4.AddRange(sp0); spl4.AddRange(spl2); spl2.Clear(); spl4 = spl4.OrderBy(p => p.GeneratedColorCode).ToList(); int qpiro_number = 432101; int qpiro_number2 = 0; int undefined = 0; for (int i = 0; i < sp0.Count; i++) { ImgSquare item = sp0[i]; try { qpiro_number2 = 0; List<ImgSquare> snc = null; int cont = 0; do { snc = spl4.Where(p => (p.GeneratedColorCode - (qpiro_number + qpiro_number2) < item.GeneratedColorCode && p.GeneratedColorCode + (qpiro_number + qpiro_number2) > item.GeneratedColorCode) && p.isArea == false).ToList(); qpiro_number2 += 332101; cont++; } while (snc.Count == 0 && cont < 5); Rectangle rec = new Rectangle(item.W, item.H, (int)_pixFor, (int)_pixFor); if (snc.Count != 0) { int randi = random.Next(0, snc.Count); System.Drawing.Image img = SmartRotate(item, snc[randi]); snc.Clear();// img = Transparnt(img, opacity); gr1.DrawImage(img, rec); sp0.RemoveAt(i); i--; img.Dispose(); } else { cont = 0; qpiro_number2 = (332101 * 5); do { snc = spl4.Where(p => (p.GeneratedColorCode - (qpiro_number + qpiro_number2) < item.GeneratedColorCode && p.GeneratedColorCode + (qpiro_number + qpiro_number2) > item.GeneratedColorCode) && p.isArea == false).ToList(); qpiro_number2 += 332101; cont++; } while (snc.Count == 0 && cont < 11); if (snc.Count > 0) { int randi = random.Next(0, snc.Count); System.Drawing.Image img = SmartRotate(item, snc[randi]); snc.Clear(); Bitmap bt0 = new Bitmap(rec.Width, rec.Height); Graphics g = Graphics.FromImage(bt0); g.Clear(Color.FromArgb(item.GeneratedColorCode)); if (opacity != 100) { img = Transparnt(img, opacity + 20); } g.DrawImage(img, new Rectangle(0, 0, rec.Width, rec.Height)); g.Dispose(); gr1.DrawImage(bt0, rec); sp0.RemoveAt(i); i--; img.Dispose(); } undefined++; } } catch (Exception ef) { throw ef; } } sp0.Clear(); spl4.Clear(); gr1.Dispose(); imagem.Dispose(); return new NewImagePart() { newImage = new MagickImage(btm).ToByteArray(), ImagePartInfo = recti.ToString() }; } } else { throw new Exception("Bu Formata Uygun Resimler Bulunamadı2") { Source = "" }; } } } catch (Exception e) { throw e; } return null; }
private void DisplayRezisedImage(string file, Actions caseDirectory) { //put this in a background worker. try { using (MagickImage image = new MagickImage(Path.Combine(Constants.ContainerLocation, Constants.Directories.GetSpecifiedCaseDirectory(caseDirectory), file))) { MagickGeometry size = new MagickGeometry(196, 196); size.IgnoreAspectRatio = false; image.Resize(size); this.InvokeIfRequired(() => FilePreviewImage.Image = image.ToBitmap()); } } catch(Exception e) { DisplayFileIconWithFileSize(file, caseDirectory); } }
private void UpdateShadowTemplate() { if (mShadowTemplate != null) { mShadowTemplate.Dispose(); } Bitmap shadowTemplate = new Bitmap(mThumbWidth + 10, mThumbHeight + 10, PixelFormat.Format32bppArgb); shadowTemplate.SetResolution(300,300); Graphics graphics = Graphics.FromImage(shadowTemplate); SolidBrush brush = new SolidBrush(Color.FromArgb((int)(mOptions.ShadowIntensity * 2.55f), 0, 0, 0)); graphics.FillRectangle(brush, 5, 5, mThumbWidth, mThumbHeight); brush.Dispose(); MagickImage mahd = new MagickImage(shadowTemplate); mahd.Blur(); mShadowTemplate = mahd.ToBitmap(); //IFilter filter = new GaussianBlur(); //mShadowTemplate = filter.Apply(shadowTemplate); graphics.Dispose(); shadowTemplate.Dispose(); }
public static List<string> PointGenerator(string inputBitmapPath, PixFormat _pixFor) { List<string> imglist = new List<string>(); try { if (_pixFor == PixFormat._null) throw new Exception("Format null olamaz") { Source = "" }; using (MagickImage imagem = new MagickImage(inputBitmapPath)) { //############# ResizeImage ############# int yuzde = 100; imagem.Quality = 100; int _w = imagem.Width + (imagem.Width / 100) * yuzde; int _h = imagem.Height + (imagem.Height / 100) * yuzde; int new_W = _w - (_w % (int)_pixFor); int new_H = _h - (_h % (int)_pixFor); imagem.Resize(new_W, new_H); imagem.Blur(5, 5); //############# GenerateSquare ############# /////////// calculate image point rgb avg //////////// string curImgPth = Path.GetFileName(inputBitmapPath); string path = UserProperty.PixelXmlMap_Path + "\\" + curImgPth.Substring(0, curImgPth.Length - 4) + _pixFor.ToString() + "_.xml"; FileInfo finf = new FileInfo(path); List<ImgSquare> sp0 = new List<ImgSquare>(); if (!File.Exists(path)) { int[,] pixavg = new int[5, 3]; int _pixformat = (int)_pixFor; WritablePixelCollection _totalpix = imagem.GetWritablePixels(0, 0, imagem.Width, imagem.Height); int range = _pixformat / 2; for (int w = 0; w < imagem.Width; w += _pixformat) { for (int h = 0; h < imagem.Height; h += _pixformat) { if (!(w + _pixformat <= imagem.Width && h + _pixformat <= imagem.Height)) continue;//olmazda olursa diye pixavg = new int[5, 3]; for (int x = 0; x < range; x++) { for (int y = 0; y < range; y++) { Color a = _totalpix.GetPixel(x + w + 0, h + 0 + y).ToColor().ToColor(); pixavg[0, 0] += a.R; pixavg[0, 1] += a.G; pixavg[0, 2] += a.B; Color b = _totalpix.GetPixel(x + w + range, h + y).ToColor().ToColor(); pixavg[1, 0] += b.R; pixavg[1, 1] += b.G; pixavg[1, 2] += b.B; Color c = _totalpix.GetPixel(x + w, h + range + y).ToColor().ToColor(); pixavg[2, 0] += c.R; pixavg[2, 1] += c.G; pixavg[2, 2] += c.B; Color d = _totalpix.GetPixel(x + w + range, h + range + y).ToColor().ToColor(); pixavg[3, 0] += d.R; pixavg[3, 1] += d.G; pixavg[3, 2] += d.B; } } //tümü için aynı toplanıyor pixavg[4, 0] = pixavg[0, 0] + pixavg[1, 0] + pixavg[2, 0] + pixavg[3, 0]; pixavg[4, 1] = pixavg[0, 1] + pixavg[1, 1] + pixavg[2, 1] + pixavg[3, 1]; pixavg[4, 2] = pixavg[0, 2] + pixavg[1, 2] + pixavg[2, 2] + pixavg[3, 2]; //---- int totalminiPix = (range * range); pixavg[0, 0] /= totalminiPix; pixavg[0, 1] /= totalminiPix; pixavg[0, 2] /= totalminiPix; pixavg[1, 0] /= totalminiPix; pixavg[1, 1] /= totalminiPix; pixavg[1, 2] /= totalminiPix; pixavg[2, 0] /= totalminiPix; pixavg[2, 1] /= totalminiPix; pixavg[2, 2] /= totalminiPix; pixavg[3, 0] /= totalminiPix; pixavg[3, 1] /= totalminiPix; pixavg[3, 2] /= totalminiPix; int totalPix = totalminiPix * 4; pixavg[4, 0] /= totalPix; pixavg[4, 1] /= totalPix; pixavg[4, 2] /= totalPix; sp0.Add(new ImgSquare(w, h, new List<QuardPixAvg>() { new QuardPixAvg(Color.FromArgb((pixavg[0, 0]), (pixavg[0, 1]), (pixavg[0, 2])), QuardBolum.SolUst), new QuardPixAvg (Color.FromArgb((pixavg[1, 0]), (pixavg[1, 1]), (pixavg[1, 2])), QuardBolum.SagUst), new QuardPixAvg(Color.FromArgb((pixavg[2, 0]), (pixavg[2, 1]), (pixavg[2, 2])), QuardBolum.SolAlt), new QuardPixAvg(Color.FromArgb((pixavg[3, 0]), (pixavg[3, 1]), (pixavg[3, 2])), QuardBolum.SagAlt), new QuardPixAvg(Color.FromArgb((pixavg[4, 0]), (pixavg[4, 1]), (pixavg[4, 2])), QuardBolum.TotalAvg) })); } } _totalpix = null; pixavg = null; ////////////////////////////// xml generate /////////////////////////////// #region xml oluşturma //XmlDocument doc = new XmlDocument(); //XmlElement root = doc.CreateElement("SquarePoints"); //root.SetAttribute("Count", sp0.Count.ToString()); //root.SetAttribute("PixFormat", _pixFor.ToString()); //foreach (ImgSquare item in sp0) //{ // XmlElement child = doc.CreateElement("SquarePoint"); // child.SetAttribute("WxH", item.ToString()); // child.SetAttribute("ColorAVG", item.SAvgArb.ToString()); // List<QuardPixAvg> lstQ = item.QuardAvg; // child.SetAttribute("SolUst", lstQ[0].QuardAvg.ToString()); // child.SetAttribute("SagUst", lstQ[1].QuardAvg.ToString()); // child.SetAttribute("SolAlt", lstQ[2].QuardAvg.ToString()); // child.SetAttribute("SagAlt", lstQ[3].QuardAvg.ToString()); // root.AppendChild(child); //} //doc.AppendChild(root); //if (!Directory.Exists(finf.Directory.FullName)) // Directory.CreateDirectory(finf.Directory.FullName); //doc.Save(path); //doc = null; #endregion } else { #region xml okuma //XmlDocument doc = new XmlDocument(); //doc.Load(path); //XmlNodeList root1 = doc.GetElementsByTagName("SquarePoints"); //XmlNode root2 = root1.Item(0); //foreach (XmlNode item in root2.ChildNodes) //{ // try // { // XmlAttribute at1 = item.Attributes[0]; // string[] point = at1.InnerText.Split('x'); // XmlAttribute at2 = item.Attributes[1]; // string ColorAvg = at2.InnerText; // List<QuardPixAvg> lQuard = new List<QuardPixAvg>(); // int SolUst = int.Parse(item.Attributes[2].InnerText); // int SagUst = int.Parse(item.Attributes[3].InnerText); // int SolAlt = int.Parse(item.Attributes[4].InnerText); // int SagAlt = int.Parse(item.Attributes[5].InnerText); // int Tumu = int.Parse(item.Attributes[1].InnerText); // lQuard.Add(new QuardPixAvg(Color.FromArgb(SolUst), QuardBolum.SolUst)); // lQuard.Add(new QuardPixAvg(Color.FromArgb(SagUst), QuardBolum.SagUst)); // lQuard.Add(new QuardPixAvg(Color.FromArgb(SolAlt), QuardBolum.SolAlt)); // lQuard.Add(new QuardPixAvg(Color.FromArgb(SagAlt), QuardBolum.SagAlt)); // lQuard.Add(new QuardPixAvg(Color.FromArgb(Tumu), QuardBolum.Tumu)); // sp0.Add(new ImgSquare(int.Parse(point[0]), int.Parse(point[1]), lQuard)); // } // catch (Exception e) // { // throw e; // } //} //root2 = null; //root1 = null; //doc = null; #endregion } //#--------------------------------- int opacity = 50; switch (_pixFor) { case PixFormat._null: sp0.Clear(); throw new Exception("Tanımsız format") { Source = "" }; break; case PixFormat._12x12: //12:36 sn opacity = 50; break; case PixFormat._20x20: //3:10 sn opacity = 50; break; case PixFormat._36x36: //0:50 sn opacity = 50; break; case PixFormat._48x48: //0:27 sn opacity = 50; break; case PixFormat._64x64: //0:15 sn opacity = 50; break; case PixFormat._94x94: //0:08 sn opacity = 50; break; } //string MiniPicturePath = Path.Combine(UserProperty.Data_Path, PixFormat._94x94.ToString()); //eski yükleme şekli string MiniPicturePath = Path.Combine(UserProperty.Data_InstagramPhotos); if (Directory.Exists(MiniPicturePath)) { Bitmap btm = imagem.ToBitmap(); using (Graphics gr1 = Graphics.FromImage(btm)) { //string[] list = Directory.GetFiles(MiniPicturePath, "*" + JPG); //string[] list = new string[0]; /////////////////////////////////////////////////////////////// string[] file = Directory.GetFiles(UserProperty.Current_User, UserProperty.UserXmlInfo); if (file.Count() != 1) throw new Exception("Geçersiz kullanıcı bilgileri"); XDocument doc = XDocument.Load(file[0]); XElement root = doc.Elements("_" + ImageProperty.GetUserName()).First(); XElement InstagramP = root.Elements("InstagramPhotos").FirstOrDefault(); XElement[] photos = (from p in InstagramP.Elements() where p.Attribute("useThis").Value.ToLower() == "true" select p).ToArray(); //list = new string[photos.Count()]; //for (int i = 0; i < photos.Count(); i++) // list[i] = Path.Combine(MiniPicturePath, photos[i].Value); /////////////////////////////////////////////////// if (photos.Count() == 0) throw new Exception("Bu Formata Uygun Resimler Bulunamadı") { Source = "" }; List<ImgSquare> spl2 = new List<ImgSquare>(); for (int i = 0; i < photos.Count(); i++) { if (File.Exists(Path.Combine(MiniPicturePath, Path.GetFileName(photos[i].Value)))) { using (MagickImage mini = new MagickImage(Path.Combine(MiniPicturePath, Path.GetFileName(photos[i].Value)))) { mini.Quality = 100; if (mini.Width != 94 && mini.Height != 94) mini.Resize((int)_pixFor, (int)_pixFor); //ImgSquare imgsq = new ImgSquare(mini.ToBitmap(), new List<QuardPixAvg>() { // new QuardPixAvg(Color.FromArgb(int.Parse(photos[i].Attribute("SolUst").Value)),QuardBolum.SagAlt), // new QuardPixAvg(Color.FromArgb(int.Parse(photos[i].Attribute("SagUst").Value)),QuardBolum.SagAlt), // new QuardPixAvg(Color.FromArgb(int.Parse(photos[i].Attribute("SolAlt").Value)),QuardBolum.SagAlt), // new QuardPixAvg(Color.FromArgb(int.Parse(photos[i].Attribute("SagAlt").Value)),QuardBolum.SagAlt), // new QuardPixAvg(Color.FromArgb(int.Parse(photos[i].Attribute("TotalAvg").Value)),QuardBolum.SagAlt) //}); spl2.Add(new ImgSquare(mini.ToBitmap())); mini.Dispose(); } } } photos = null; doc = null; root = null; InstagramP = null; List<ImgSquare> spl4 = new List<ImgSquare>(); spl4.AddRange(sp0); spl4.AddRange(spl2); spl2.Clear(); spl4 = spl4.OrderBy(p => p.GeneratedColorCode).ToList(); int qpiro_number = 432101; int qpiro_number2 = 0; int undefined = 0; for (int i = 0; i < sp0.Count; i++) { ImgSquare item = sp0[i]; //if (item.SAvgArb == 0 && item.IAvgRgb == 0) // continue; try { qpiro_number2 = 0; List<ImgSquare> snc = null; int cont = 0; do { snc = spl4.Where(p => (p.GeneratedColorCode - (qpiro_number + qpiro_number2) < item.GeneratedColorCode && p.GeneratedColorCode + (qpiro_number + qpiro_number2) > item.GeneratedColorCode) && p.isArea == false).ToList(); qpiro_number2 += 332101; cont++; } while (snc.Count == 0 && cont < 5); Rectangle rec = new Rectangle(item.W, item.H, (int)_pixFor, (int)_pixFor); if (snc.Count != 0) { int randi = random.Next(0, snc.Count); System.Drawing.Image img = SmartRotate(item, snc[randi]); snc.Clear();// img = Transparnt(img, opacity); gr1.DrawImage(img, rec); sp0.RemoveAt(i); i--; img.Dispose(); } else { using (MagickImage imgUndefined = new MagickImage(Path.Combine(UserProperty.Data_InstagramPhotos, "black.jpg"))) { System.Drawing.Image img = Transparnt(imgUndefined.ToBitmap(), opacity); gr1.DrawImage(img, rec); sp0.RemoveAt(i); i--; imgUndefined.Dispose(); } //int ss = item.GeneratedColorCode; //if (ss >= 11075440 && ss <= 15260100) //{ // cont = 0; // qpiro_number2 += 332101; // do // { // snc = spl4.Where(p => // (p.GeneratedColorCode - (qpiro_number + qpiro_number2) < item.GeneratedColorCode && // p.GeneratedColorCode + (qpiro_number + qpiro_number2) > item.GeneratedColorCode) && // p.isArea == false).ToList(); // qpiro_number2 += 332101; // cont++; // } // while (snc.Count == 0 && cont < 13); // if (snc.Count != 0) // { // Rectangle rec = new Rectangle(item.W, item.H, (int)_pixFor, (int)_pixFor); // int randi = random.Next(0, snc.Count); // System.Drawing.Image img = SmartRotate(item, snc[randi]); // snc.Clear();// // img = Transparnt(img, opacity); // gr1.DrawImage(img, rec); // sp0.RemoveAt(i); // i--; // } // else // { // } //} undefined++; } } catch (Exception ef) { throw ef; } } sp0.Clear(); spl4.Clear(); gr1.Dispose(); //workingBitmap1.Save(Path.Combine(UsrImageProc.SavedPhotos_Path, Path.GetFileName(inputBitmapPath))); //imglist.Add("lokale kaydettim"); Bitmap hd = btm.ArithmeticBlend(btm, ColorCalculationType.Add); imglist.Add(ImageToBase64(hd, System.Drawing.Imaging.ImageFormat.Jpeg)); imglist.Add(ImageToBase64(btm, System.Drawing.Imaging.ImageFormat.Jpeg)); btm.Dispose(); hd.Dispose(); imagem.Dispose(); } } else { throw new Exception("Bu Formata Uygun Resimler Bulunamadı2") { Source = "" }; } } } catch (Exception e) { throw e; } return imglist; }
private void pictureBox1_Click(object sender, EventArgs e) { OpenFileDialog ofdlg = new OpenFileDialog(); ofdlg.ShowDialog(); var name = ofdlg.FileName; if (name.Length > 0) { origFile = name; Stream imageStreamSource = new FileStream(origFile, FileMode.Open, FileAccess.Read, FileShare.Read); using (MemoryStream memstream = new MemoryStream()) { memstream.SetLength(imageStreamSource.Length); imageStreamSource.Read(memstream.GetBuffer(), 0, (int)imageStreamSource.Length); imageStreamSource.Close(); MagickImage img = new MagickImage(memstream.ToArray()); // img.Grayscale(PixelIntensityMethod.Average); origImg = img.ToBitmap(); } pictureBox1.BackgroundImageLayout = ImageLayout.Stretch; pictureBox1.BackgroundImage = origImg; } else { MessageBox.Show("Sorry there was an error getting your ne image\rNow Restore previous image"); pictureBox1.BackgroundImageLayout = ImageLayout.Stretch; pictureBox1.BackgroundImage = origImg; } }