示例#1
0
 public static void ProcessFile(IProcessorItem item)
 {
     var bitmap = new Bitmap(item.Source);
     bitmap = ProcessBitmap(bitmap, item.Correction);
     bitmap.Save(Path.ChangeExtension(item.Destination, "jpg"), new JpegSettings(100));
     bitmap.Dispose();
 }
示例#2
0
        public static void ProcessImage(IProcessorItem item)
        {
            using (ImageReader reader = ImageReader.Create(item.Source))
            using (var contrast = new Contrast(item.Correction.Contrast))
            using (var levels = new Levels(item.Correction.Black, item.Correction.White, item.Correction.Shadow, item.Correction.Midpoint, item.Correction.Highlight, HistogramMode.Luminosity))
            using (var color = new ChannelBalance())
            using (var rotate = new Rotate(item.Correction.Rotate))
            using (var saturation = new AdjustHsl(0f, item.Correction.Saturation, 0f))
            using (var writer = new JpegWriter(Path.ChangeExtension(item.Destination, "jpg"), 99))
            {
                color.Addends = new float[3]
                {
                    item.Correction.Blue,
                    item.Correction.Green,
                    item.Correction.Red
                };
                color.Multipliers = new float[3]
                {
                    1f,
                    1f,
                    1f
                };

                writer.UseSubsampling = false;

                Pipeline.Run(reader + contrast + levels + color + rotate + saturation + writer);
            }
        }
示例#3
0
 public ProcessorItem(IProcessorItem processorItem)
 {
     Correction = processorItem.Correction;
     Destination = processorItem.Destination;
     Source = processorItem.Source;
 }