private static void GeneratePreviews(List <Parameter> parameters, Bitmap[] images, string outputDirectory, string baseName) { Logger.Debug("Generating previews..."); var states = GetPreviewStates(); var staticPreview = PreviewGenerator.CreateImage(parameters, images, new WatchState()); staticPreview.Save(Path.Combine(outputDirectory, $"{baseName}_static.png"), ImageFormat.Png); var previewImages = PreviewGenerator.CreateAnimation(parameters, images, states); if (IsRunningOnMono) { var i = 0; foreach (var previewImage in previewImages) { previewImage.Save(Path.Combine(outputDirectory, $"{baseName}_animated_{i}.png"), ImageFormat.Png); i++; } } else { using (var gifOutput = File.OpenWrite(Path.Combine(outputDirectory, $"{baseName}_animated.gif"))) using (var encoder = new GifEncoder(gifOutput)) { foreach (var previewImage in previewImages) { encoder.AddFrame(previewImage, frameDelay: TimeSpan.FromSeconds(1)); } } } }
private static void GeneratePreviews(List <Parameter> parameters, Bitmap[] images, string outputDirectory, string baseName) { Logger.Debug("Generating previews..."); var states = GetPreviewStates(); var staticPreview = PreviewGenerator.CreateImage(parameters, images, new WatchState(), previewSize); staticPreview.Save(Path.Combine(outputDirectory, $"{baseName}_static.png"), ImageFormat.Png); var previewImages = PreviewGenerator.CreateAnimation(parameters, images, states, previewSize); if (IsRunningOnMono) { var i = 0; foreach (var previewImage in previewImages) { previewImage.Save(Path.Combine(outputDirectory, $"{baseName}_animated_{i}.png"), ImageFormat.Png); i++; } } else { using (var gif = AnimatedGif.AnimatedGif.Create(Path.Combine(outputDirectory, $"{baseName}_animated.gif"), 1000)) foreach (var previewImage in previewImages) { gif.AddFrame(previewImage, quality: AnimatedGif.GifQuality.Bit8); } } }