private void Drukuj(string text) { var img = new MagickImage("image.jpg"); using (var imgText = new MagickImage()) { imgText.FontPointsize = 24; imgText.BackgroundColor = new MagickColor(Color.White); imgText.FillColor = new MagickColor(Color.Black); imgText.AntiAlias = true; imgText.FontFamily = "Fake Receipt"; imgText.Read("label:" + text); img.Composite(imgText, Gravity.West); } image.Source = img.ToBitmapSource(); }
private ImageMagick.MagickImage originalMagickImage = null; // 图层图像修改前的状态 //点击状态下饱和度调节 private void MouseButtonDown(object sender, MouseButtonEventArgs args) { if (down == null) { return; } originalMagickImage = new ImageMagick.MagickImage(bitmap); ImageMagick.Percentage brightness = new ImageMagick.Percentage(100); // 100%表示不改变该属性 ImageMagick.Percentage saturation = new ImageMagick.Percentage(50); ImageMagick.Percentage hue = new ImageMagick.Percentage(100); // 滑动条范围值0%~200% ImageMagick.MagickImage newImage = new ImageMagick.MagickImage(originalMagickImage); // 相当于深复制 newImage.Modulate(brightness, saturation, hue); // 重新给Image控件赋值新图像 down = newImage.ToBitmapSource(); Source = down; originalMagickImage.Dispose(); }
public void loaded(object sender, EventArgs args) { if (originalMagickImage == null) { up = Source; if (down == null) { bitmap = ImageSourceToBitmap(this.Source); // img是前台Image控件 new Task(new Action(() => { originalMagickImage = new ImageMagick.MagickImage(bitmap); ImageMagick.Percentage brightness = new ImageMagick.Percentage(100); // 100%表示不改变该属性 ImageMagick.Percentage saturation = new ImageMagick.Percentage(50); ImageMagick.Percentage hue = new ImageMagick.Percentage(100); // 滑动条范围值0%~200% ImageMagick.MagickImage newImage = new ImageMagick.MagickImage(originalMagickImage); // 相当于深复制 newImage.Modulate(brightness, saturation, hue); // 重新给Image控件赋值新图像 down = newImage.ToBitmapSource(); })).Start(); } } }
public void Test_ToBitmapSource() { byte[] pixels = new byte[600]; using (MagickImage image = new MagickImage(MagickColors.Red, 10, 10)) { BitmapSource bitmap = image.ToBitmapSource(); Assert.AreEqual(MediaPixelFormats.Rgb24, bitmap.Format); bitmap.CopyPixels(pixels, 60, 0); Assert.AreEqual(255, pixels[0]); Assert.AreEqual(0, pixels[1]); Assert.AreEqual(0, pixels[2]); image.ColorSpace = ColorSpace.CMYK; bitmap = image.ToBitmapSource(); Assert.AreEqual(MediaPixelFormats.Cmyk32, bitmap.Format); bitmap.CopyPixels(pixels, 60, 0); Assert.AreEqual(0, pixels[0]); Assert.AreEqual(255, pixels[1]); Assert.AreEqual(255, pixels[2]); Assert.AreEqual(0, pixels[3]); image.AddProfile(ColorProfile.USWebCoatedSWOP); image.AddProfile(ColorProfile.SRGB); bitmap = image.ToBitmapSource(); Assert.AreEqual(MediaPixelFormats.Rgb24, bitmap.Format); bitmap.CopyPixels(pixels, 60, 0); Assert.AreEqual(237, pixels[0]); Assert.AreEqual(28, pixels[1]); Assert.AreEqual(36, pixels[2]); image.HasAlpha = true; bitmap = image.ToBitmapSource(); Assert.AreEqual(MediaPixelFormats.Bgra32, bitmap.Format); bitmap.CopyPixels(pixels, 60, 0); Assert.AreEqual(36, pixels[0]); Assert.AreEqual(28, pixels[1]); Assert.AreEqual(237, pixels[2]); Assert.AreEqual(255, pixels[3]); } }
public void Test_ToBitmapSource() { byte[] pixels = new byte[600]; using (MagickImage image = new MagickImage(Color.Red, 10, 10)) { BitmapSource bitmap = image.ToBitmapSource(); bitmap.CopyPixels(pixels, 60, 0); Assert.AreEqual(255, pixels[0]); Assert.AreEqual(0, pixels[1]); Assert.AreEqual(0, pixels[2]); image.ColorSpace = ColorSpace.CMYK; bitmap = image.ToBitmapSource(); bitmap.CopyPixels(pixels, 60, 0); Assert.AreEqual(0, pixels[0]); Assert.AreEqual(255, pixels[1]); Assert.AreEqual(255, pixels[2]); Assert.AreEqual(0, pixels[3]); image.AddProfile(ColorProfile.USWebCoatedSWOP); image.AddProfile(ColorProfile.SRGB); bitmap = image.ToBitmapSource(); bitmap.CopyPixels(pixels, 60, 0); Assert.AreEqual(237, pixels[0]); Assert.AreEqual(28, pixels[1]); Assert.AreEqual(36, pixels[2]); } }