Ejemplo n.º 1
0
        public LevelsDto GetLevelsValues()
        {
            LevelsDto dto = new LevelsDto();

            float shadow = Helpers.ConvertRange(Shadow.Value, -400, 400, -1, 1);
            float highlight = Helpers.ConvertRange(Highlight.Value, -400, 400, -1, 1);
            float midtone;

            if (Midtone.Value >= 0)
            {
                midtone = Helpers.ConvertRange(Midtone.Value, 0, 100, 1, 3);
            }
            else
            {
                midtone = Helpers.ConvertRange(Midtone.Value, -100, 0, 0.1f, 1);
            }

            dto.MinimumLevel = Shadow.Value >= 0 ? Math.Abs(shadow) : 0;
            dto.Shadows = Shadow.Value <= 0 ? Math.Abs(shadow) : 0;
            dto.MaximumLevel = Highlight.Value < 0 ? 1 - Math.Abs(highlight) : 1;
            dto.Highlights = Highlight.Value > 0 ? 1 - Math.Abs(highlight) : 1;
            dto.Midtones = midtone;
            
            return dto;
        }
Ejemplo n.º 2
0
 private static Bitmap ApplyLevels(Bitmap bmp, LevelsDto dto)
 {
     bmp.ColorAdjustment.Levels(dto.MinimumLevel, dto.MaximumLevel, dto.Shadows, dto.Midtones, dto.Highlights, HistogramMode.Sum);
     return bmp;
 }
Ejemplo n.º 3
0
 private static Bitmap AdjustChannelLevels(Bitmap bmp, Channel channel, LevelsDto dto)
 {
     var ch = bmp.Channels[channel];
     ch = ApplyLevels(ch, dto);
     bmp.Channels[channel] = ch;
     return bmp;
 }