private Image GetSourceWithCorrectSize(Image sourceImage, Domain.Model.ImageProperty property) { if (sourceImage.Width > property.Width || sourceImage.Height > property.Height) { var newSize = ResizeKeepAspect(new Size(sourceImage.Width, sourceImage.Height), property.Width, property.Height); return(ResizeImage((Image)sourceImage.Clone(), newSize.Width, newSize.Height)); } else { return((Image)sourceImage.Clone()); } }
private void GenerateImage(Image sourceImage, Color backgroundColor, Domain.Model.ImageProperty property, string outputFolder) { using (var source = this.GetSourceWithCorrectSize(sourceImage, property)) using (var dest = new Bitmap(property.Width, property.Height)) using (var graphics = Graphics.FromImage(dest)) { var sourceCenter = new Point(source.Width / 2, source.Height / 2); var center = new Point(dest.Width / 2, dest.Height / 2); graphics.Clear(backgroundColor); var drawCenter = new Point(center.X - sourceCenter.X, center.Y - sourceCenter.Y); graphics.DrawImage(source, drawCenter); graphics.Save(); dest.Save(Path.Combine(outputFolder, property.Name)); } }