From 3a4a8798c25ac1e8c308362f0b25aee7be043c95 Mon Sep 17 00:00:00 2001 From: Jaex Date: Sat, 4 Feb 2017 04:06:19 +0300 Subject: [PATCH] fixed #596: Fix "Save thumbnail image to file" issue --- .../Manipulations/Resize.cs | 6 +++++ ShareX/TaskHelpers.cs | 22 +++++++++---------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/ShareX.ImageEffectsLib/Manipulations/Resize.cs b/ShareX.ImageEffectsLib/Manipulations/Resize.cs index cac0929e1..98785e98e 100644 --- a/ShareX.ImageEffectsLib/Manipulations/Resize.cs +++ b/ShareX.ImageEffectsLib/Manipulations/Resize.cs @@ -45,6 +45,12 @@ public Resize() this.ApplyDefaultPropertyValues(); } + public Resize(int width, int height) + { + Width = width; + Height = height; + } + public override Image Apply(Image img) { if (Width <= 0 && Height <= 0) return img; diff --git a/ShareX/TaskHelpers.cs b/ShareX/TaskHelpers.cs index fc9fc955d..202822116 100644 --- a/ShareX/TaskHelpers.cs +++ b/ShareX/TaskHelpers.cs @@ -267,19 +267,11 @@ public static string CreateThumbnail(Image img, string folder, string filename, try { thumbImage = (Image)img.Clone(); - thumbImage = new Resize - { - Width = taskSettings.ImageSettings.ThumbnailWidth, - Height = taskSettings.ImageSettings.ThumbnailHeight - }.Apply(thumbImage); + thumbImage = new Resize(taskSettings.ImageSettings.ThumbnailWidth, taskSettings.ImageSettings.ThumbnailHeight).Apply(thumbImage); thumbImage = ImageHelpers.FillBackground(thumbImage, Color.White); thumbImage.SaveJPG(thumbnailFilePath, 90); return thumbnailFilePath; } - catch (Exception e) - { - DebugHelper.WriteException(e); - } finally { if (thumbImage != null) @@ -308,8 +300,16 @@ public static MemoryStream SaveImageAsStream(Image img, EImageFormat imageFormat img.Save(stream, ImageFormat.Png); break; case EImageFormat.JPEG: - img = ImageHelpers.FillBackground(img, Color.White); - img.SaveJPG(stream, jpegQuality); + try + { + img = (Image)img.Clone(); + img = ImageHelpers.FillBackground(img, Color.White); + img.SaveJPG(stream, jpegQuality); + } + finally + { + if (img != null) img.Dispose(); + } break; case EImageFormat.GIF: img.SaveGIF(stream, gifQuality);