public async Task <MagickImage> GenerateCaptionAsync(WheelTextSetting setting)
        {
            var image = new MagickImage(MagickColors.Transparent, setting.Width, setting.Height);

            await Task.Run(() =>
            {
                var captionString = "caption:" + setting.PreviewText;

                image.Settings.FillColor =
                    new MagickColor(Converters.ColorConvert.ColorFromMediaColor(setting.TextColor));

                image.Settings.StrokeColor =
                    new MagickColor(Converters.ColorConvert.ColorFromMediaColor(setting.TextStrokeColor));

                image.Settings.StrokeWidth = setting.StrokeWidth;

                image.Settings.Font = setting.FontName;

                image.Settings.TextGravity = (Gravity)Enum.Parse(typeof(Gravity), setting.Gravity);

                image.Read(captionString);

                if (setting.ArcAmount > 0)
                {
                    image.Distort(DistortMethod.Arc, setting.ArcAmount);
                }

                if (setting.ShadeOn)
                {
                    image.Shade(setting.ShadeAzimuth, setting.ShadeElevation, false);
                }

                var shadowColor = new MagickColor(Converters.ColorConvert.ColorFromMediaColor(setting.ShadowColor));
                image.Shadow(setting.ShadowX, setting.ShadowY, setting.ShadowSigma,
                             new Percentage(setting.ShadowPercentage), new MagickColor(shadowColor));

                //image.RePage();

                if (setting.Trim)
                {
                    image.Trim();
                }
            });

            return(image);
        }
        public WheelTextSetting DeserializePreset(string presetFile)
        {
            if (!File.Exists(presetFile))
            {
                return(null);
            }

            using (TextReader sr = new StreamReader(presetFile))
                using (var reader = XmlReader.Create(sr))
                {
                    var serializer = new XmlSerializer(typeof(WheelTextSetting));

                    WheelTextSetting setting = (WheelTextSetting)serializer.Deserialize(reader);

                    return(setting);
                }
        }
Beispiel #3
0
 private void SetUIValuesFromPreset(WheelTextSetting setting)
 {
     CurrentWheelSetting = setting;
     FontName            = CurrentWheelSetting.FontName;
 }