Skip to content

Commit

Permalink
fixed #7366: Handle image save exception
Browse files Browse the repository at this point in the history
  • Loading branch information
Jaex committed Mar 28, 2024
1 parent 038b270 commit 77d4f7a
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 31 deletions.
1 change: 1 addition & 0 deletions ShareX.HelpersLib/Helpers/ImageHelpers.cs
Expand Up @@ -2165,6 +2165,7 @@ public static bool SaveImage(Image img, string filePath)
}
catch (Exception e)
{
DebugHelper.WriteException(e);
e.ShowError();
}

Expand Down
19 changes: 12 additions & 7 deletions ShareX.ScreenCaptureLib/Forms/ScrollingCaptureForm.cs
Expand Up @@ -133,13 +133,7 @@ private async Task StartCapture()
btnCapture.Enabled = true;
btnOptions.Enabled = true;

if (manager.Result != null)
{
btnUpload.Enabled = true;
pbOutput.Image = manager.Result;
pOutput.AutoScrollPosition = new Point(0, 0);
lblResultSize.Text = $"{manager.Result.Width}x{manager.Result.Height}";
}
LoadImage(manager.Result);

this.ForceActivate();

Expand All @@ -149,6 +143,17 @@ private async Task StartCapture()
}
}

private void LoadImage(Bitmap bmp)
{
if (bmp != null)
{
btnUpload.Enabled = true;
pbOutput.Image = bmp;
pOutput.AutoScrollPosition = new Point(0, 0);
lblResultSize.Text = $"{bmp.Width}x{bmp.Height}";
}
}

private async Task SelectWindow()
{
WindowState = FormWindowState.Minimized;
Expand Down
56 changes: 32 additions & 24 deletions ShareX/TaskHelpers.cs
Expand Up @@ -372,34 +372,42 @@ public static MemoryStream SaveImageAsStream(Image img, EImageFormat imageFormat
{
MemoryStream ms = new MemoryStream();

switch (imageFormat)
try
{
case EImageFormat.PNG:
ImageHelpers.SavePNG(img, ms, pngBitDepth);
switch (imageFormat)
{
case EImageFormat.PNG:
ImageHelpers.SavePNG(img, ms, pngBitDepth);

if (Program.Settings.PNGStripColorSpaceInformation)
{
using (ms)
if (Program.Settings.PNGStripColorSpaceInformation)
{
return ImageHelpers.PNGStripColorSpaceInformation(ms);
using (ms)
{
return ImageHelpers.PNGStripColorSpaceInformation(ms);
}
}
}
break;
case EImageFormat.JPEG:
using (Bitmap newImage = ImageHelpers.FillBackground(img, Color.White))
{
ImageHelpers.SaveJPEG(newImage, ms, jpegQuality);
}
break;
case EImageFormat.GIF:
ImageHelpers.SaveGIF(img, ms, gifQuality);
break;
case EImageFormat.BMP:
img.Save(ms, ImageFormat.Bmp);
break;
case EImageFormat.TIFF:
img.Save(ms, ImageFormat.Tiff);
break;
break;
case EImageFormat.JPEG:
using (Bitmap newImage = ImageHelpers.FillBackground(img, Color.White))
{
ImageHelpers.SaveJPEG(newImage, ms, jpegQuality);
}
break;
case EImageFormat.GIF:
ImageHelpers.SaveGIF(img, ms, gifQuality);
break;
case EImageFormat.BMP:
img.Save(ms, ImageFormat.Bmp);
break;
case EImageFormat.TIFF:
img.Save(ms, ImageFormat.Tiff);
break;
}
}
catch (Exception e)
{
DebugHelper.WriteException(e);
e.ShowError();
}

return ms;
Expand Down

0 comments on commit 77d4f7a

Please sign in to comment.