public override void ConvertImage(MagickImage image, double scale, PixelInterpolateMethod pixelInterpolate, DitherMode dither, BitMode bitMode) { Reset(); Mode = bitMode; int[] size = Utils.LCDSizeToNum((LCDSize)Converter.Instance.LCDSizeSelection.SelectedItem); image.InterpolativeResize(size[1] * Y, size[0] * X, pixelInterpolate); image.Depth = bitMode == BitMode.Bit3 ? 3 : 5; image.Settings.Compression = CompressionMethod.NoCompression; if (dither == DitherMode.Riemersma || dither == DitherMode.FloydSteinberg || dither == DitherMode.None) { image.Quantize(new QuantizeSettings() { Colors = bitMode == BitMode.Bit3 ? 8 : 32, DitherMethod = (DitherMethod)dither, ColorSpace = ColorSpace.sRGB, TreeDepth = 100 }); } else { image.Quantize(new QuantizeSettings() { Colors = bitMode == BitMode.Bit3 ? 8 : 32, DitherMethod = DitherMethod.No, ColorSpace = ColorSpace.sRGB, TreeDepth = 100 }); image.OrderedDither(dither.ToString()); } }
public virtual void ConvertImage(MagickImage image, double scale, PixelInterpolateMethod pixelInterpolate, DitherMode dither, BitMode bitMode) { image.InterpolativeResize(Math.Max(1, (int)(image.Width * scale)), Math.Max(1, (int)(image.Height * scale)), pixelInterpolate); if (dither == DitherMode.Riemersma || dither == DitherMode.FloydSteinberg || dither == DitherMode.None) { image.Quantize(new QuantizeSettings() { DitherMethod = (DitherMethod)dither, Colors = 256, ColorSpace = ColorSpace.sRGB, TreeDepth = 100 }); } else { image.OrderedDither(dither.ToString()); } }