Catch gdi exception & ignore

#2072
This commit is contained in:
Kurt
2018-08-28 18:21:46 -07:00
parent dfdcc28789
commit 6abeec507f
2 changed files with 6 additions and 7 deletions

View File

@@ -73,8 +73,10 @@ private void TimerElapsed(object sender, ElapsedEventArgs elapsedEventArgs)
lock (Lock)
{
if (Enabled)
pb.BackgroundImage = GetFrame(frameIndex);
if (!Enabled)
return;
try { pb.BackgroundImage = GetFrame(frameIndex); } // drawing GDI can be silly sometimes #2072
catch (AccessViolationException ex) { System.Diagnostics.Debug.WriteLine(ex.Message); }
}
}
@@ -89,7 +91,7 @@ private Image GetFrame(int frameIndex)
var frameData = (byte[])GlowData.Clone();
ImageUtil.ChangeAllColorTo(frameData, frameColor);
frame = (Image)ImageUtil.GetBitmap(frameData, imgWidth, imgHeight).Clone();
frame = ImageUtil.GetBitmap(frameData, imgWidth, imgHeight);
if (ExtraLayer != null)
frame = ImageUtil.LayerImage(frame, ExtraLayer, 0, 0);
frame = ImageUtil.LayerImage(OriginalBackground, frame, 0, 0);

View File

@@ -22,12 +22,9 @@ public static Bitmap LayerImage(Image baseLayer, Image overLayer, int x, int y)
{
if (baseLayer == null)
return overLayer as Bitmap;
Bitmap img = new Bitmap(baseLayer.Width, baseLayer.Height);
Bitmap img = new Bitmap(baseLayer);
using (Graphics gr = Graphics.FromImage(img))
{
gr.DrawImage(baseLayer, 0, 0);
gr.DrawImage(overLayer, x, y, overLayer.Width, overLayer.Height);
}
return img;
}