public string Execute(FileItem item, string infile, string dest, ValuePairEnumerator configData) { var conf = new ChromakeyViewModel(configData); dest = Path.Combine(Path.GetDirectoryName(dest), Path.GetFileNameWithoutExtension(dest) + ".jpg"); KalikoImage image = new KalikoImage(infile); var x = (System.Windows.Media.Color)System.Windows.Media.ColorConverter.ConvertFromString(conf.BackgroundColor); var filter = new ChromaKeyFilter(); filter.KeyColor = Color.FromArgb(x.R, x.G, x.B); filter.ToleranceHue = conf.Hue; filter.ToleranceSaturnation = conf.Saturnation/100f; filter.ToleranceBrightness = conf.Brigthness / 100f; image.ApplyFilter(filter); var res = image.Clone(); if (conf.UnsharpMask) res.ApplyFilter(new UnsharpMaskFilter(1.4f, 1.32f, 5)); var backdrop = new KalikoImage(conf.BackgroundFile); backdrop = backdrop.Scale(new FitScaling(image.Width, image.Height)); backdrop.BlitImage(res); backdrop.SaveJpg(dest, 90); return dest; }
private async Task ConvertBackgroundBlurAsync(bool overwrite) { await Task.Run(() => { filesToZip.Add(LimProjectManager.LapFolder + "/Layesta/background_blur.png"); if (File.Exists(LimProjectManager.LapFolder + "/Layesta/background_blur.png") && !overwrite) { return; } Kaliko.ImageLibrary.KalikoImage k = new Kaliko.ImageLibrary.KalikoImage(LimProjectManager.LapFolder + "/Layesta/background.jpg"); k = k.Scale(new Kaliko.ImageLibrary.Scaling.PadScaling((int)(64f / k.Height *k.Width), 64)); k.ApplyFilter(new Kaliko.ImageLibrary.Filters.GaussianBlurFilter(5)); k.SavePng(LimProjectManager.LapFolder + "/Layesta/background_blur.png"); }); }