diff --git a/quick-picture-viewer/forms/MainForm.cs b/quick-picture-viewer/forms/MainForm.cs index f19f6be..1da1257 100644 --- a/quick-picture-viewer/forms/MainForm.cs +++ b/quick-picture-viewer/forms/MainForm.cs @@ -2202,8 +2202,10 @@ public void cropBtn_Click(object sender, EventArgs e) { if (selForm != null && originalImage != null) { - originalImage = originalImage.Clone(GetSelectionRect(), originalImage.PixelFormat); + Bitmap oldImage = originalImage; + originalImage = oldImage.Clone(GetSelectionRect(), oldImage.PixelFormat); pictureBox.Image = originalImage; + oldImage.Dispose(); setImageChanged(true); UpdateSizeLabel(); pictureBox.UpdatePictureBoxLocation(picturePanel); diff --git a/quick-picture-viewer/typewrappers/BitmapWrapper.cs b/quick-picture-viewer/typewrappers/BitmapWrapper.cs index 924111d..3607f3b 100644 --- a/quick-picture-viewer/typewrappers/BitmapWrapper.cs +++ b/quick-picture-viewer/typewrappers/BitmapWrapper.cs @@ -15,10 +15,14 @@ public override FileTypeMan.OpenResult Open(string path) { try { - return new FileTypeMan.OpenResult + using (var ms = new MemoryStream(File.ReadAllBytes(path))) + using (var tmp = new Bitmap(ms)) { - Bmp = new Bitmap(path) - }; + return new FileTypeMan.OpenResult + { + Bmp = new Bitmap(tmp) + }; + } } catch { diff --git a/quick-picture-viewer/typewrappers/IcoWrapper.cs b/quick-picture-viewer/typewrappers/IcoWrapper.cs index ec842e9..70dcbe3 100644 --- a/quick-picture-viewer/typewrappers/IcoWrapper.cs +++ b/quick-picture-viewer/typewrappers/IcoWrapper.cs @@ -16,10 +16,13 @@ public override FileTypeMan.OpenResult Open(string path) { try { - return new FileTypeMan.OpenResult + using (var icon = new Icon(path, 128, 128)) { - Bmp = new Icon(path, 128, 128).ToBitmap() - }; + return new FileTypeMan.OpenResult + { + Bmp = icon.ToBitmap() + }; + } } catch {