From ccdc4e0dd6981671a5c9302fae303463e0d38304 Mon Sep 17 00:00:00 2001 From: Tim Young Date: Tue, 10 Oct 2017 13:25:24 -0500 Subject: [PATCH] Deal with poorly sized images. Make an X sprite showing an error instead of crashing out. --- .../Properties/Resources.Designer.cs | 14 +++++++++-- SpriteLibrary/Resources/X.png | Bin 0 -> 2320 bytes SpriteLibrary/SmartImage.cs | 22 ++++++++++++++++++ SpriteLibrary/SpriteLibrary.csproj | 3 +++ 4 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 SpriteLibrary/Resources/X.png diff --git a/SpriteLibrary/Properties/Resources.Designer.cs b/SpriteLibrary/Properties/Resources.Designer.cs index 11a7542..eb1555f 100644 --- a/SpriteLibrary/Properties/Resources.Designer.cs +++ b/SpriteLibrary/Properties/Resources.Designer.cs @@ -61,8 +61,8 @@ namespace SpriteLibrary.Properties { } /// - /// Looks up a localized string similar to {\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 00000000000000000000}Cambria Math;} - ///{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f40\fbidi \fmodern\fcharset0\fprq1{\*\panose 020b0609020204030204}Consolas;}{\flomajor [rest of string was truncated]";. + /// Looks up a localized string similar to {\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff0\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi0\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset1\fprq2{\*\panose 02040503050406030204}Cambria Math;} + ///{\f39\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\f40\fbidi \fmodern\fcharset0\fprq1{\*\panose 00000000000000000000}Consolas;}{\flomajor [rest of string was truncated]";. /// internal static string ChangeLog { get { @@ -89,5 +89,15 @@ namespace SpriteLibrary.Properties { return ((System.Drawing.Icon)(obj)); } } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap X { + get { + object obj = ResourceManager.GetObject("X", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } } } diff --git a/SpriteLibrary/Resources/X.png b/SpriteLibrary/Resources/X.png new file mode 100644 index 0000000000000000000000000000000000000000..3133698172bc518b783b3c00cfa57dc136ccea61 GIT binary patch literal 2320 zcmV+r3GeoaP)WFU8GbZ8()Nlj2>E@cM*00?wRL_t(&-tC&Za~sDU z$3J^`kOT>U1V}(64S|uY87Y&o1)GRsIT5W$&Qtazt-C0baSD4_yJM9!X_Tml|A7?h z63d>9C3%wZC^qM0gK^UedOOYT;ZunO0DoRsptQ4N`vSKRi~&+g0DRzzKxRfU zc&(Hf5VNTiNXaYlxKd;&1HsZ==B)5F=ZF{Ry_l$0#>6(~4;Hk#8*O@!ZHTqLhRSgS)=fI9%WD-GIK zhEC)jY*-_-R{fZO>zbNBBn?S=ubWt9Ce z*b2g?ZKSV{?=(Pm!ygw+dcK`6Za{PXT+ml6$lH6F($ zgc?~(y#!ki;CM3{ni4v#>*9rzCzp2&gLm%U#gO(B)h7famQD_UU(>XIHi0YvQ)6R9 zeLhTFP*0#3nL#?V8=CK#nf>5#(dnuWeAI;5;xrE@A zcpOcE>~@`(Ey6|#Vy*POC85*0F3!L7(p=dvxH>Q16Sy9@Bf!uXU z;|i>oAl^=&wRRq=df`l2O0GJ1;T|D~)*|fdhXoVa@5N#adc8_ymn`jWfV>BT?e31+ z5?b}b<1Z!>>q{FOe4NcH?FIqs*XM=UsYHUOgF&7Rhn3Gg0JbfIv<-JV*#fpLl)b&^ zAi!TU8CEtn9Aja#hdyAiQsE~@jwsvRl#=_kUbeUaU+bi=9SNP*b#W?@zySUdlheIxV{!Y5Czt!{4eVJ6e^^Y?)r%ODhB zy<3U4t_lUXIX5>1a5I}F3$>;yFT~?`wC0+2nH%-TA)*$5+@)mlt$iufOjVwW zL>yCZElcT)u;u?=IBK@LFN9tJ?c=$*7*g&b ztH`dKr*GQ|v3BXwh!EZ@U7C!J8(B>zR{*{li4YqYP}<#-k}{ByQn^w0)g4;7A!@e& ze-&yT2o3i1Fy)Y4&r3<6Dqu?pG7f>nNL_x%4@2GX!fgwkv7BLEID8nd1G3gL%z~7B zDFhETHyypO72yD^&2)I~+P2Uy-EIS5G7=%~aE5sgs912!3&BTob6icQl?e9>!BFj? z)zC;AhgKa6HBkzBy^d#?c_}Ga>#%BucZ;PGw^r4Cj{B}gLG*PecT|X` z0tu}dWPcQkDUsc^L3Xvx1EFF*KLBuJagn?tkf`^<0=y%TZd>RFGc##`Z-hb|8yr+N zkd?9)St-A0H;ZR_;T^-^s>21YdW5}j`10grwv{AYjhFSg-MoI{1U`>PiR@Axvajj- zkxsW%<~7<2@woB~wJasKEqN^)I_$=?dJP2^);TH zC1YR)25;QDb*P(JJ9E%(=kt!&XruofNF2BG!kQhjKX~dX`W?J%-4)WN1B12^UR @@ -131,6 +142,17 @@ namespace SpriteLibrary y += height; x = 0; } + //If we managed to send it a bad size or something and we could not make a single image. + if (Frames.Count == 0) + { + Bitmap tImage = new Bitmap(width, height); + Image XImage = Properties.Resources.X; + Graphics.FromImage(tImage).DrawImage(Properties.Resources.X, 0, 0, tImage.Width, tImage.Height); + AnimationSingleFrame newSingle = new AnimationSingleFrame(tImage, Smart_Image.FrameCount); + AnimationFrame newFrame = new AnimationFrame(Smart_Image.FrameCount, TimeSpan.FromMilliseconds(duration)); + Frames.Add(newFrame); + Smart_Image.AddFrame(newSingle); + } } internal Animation(SmartImage Smart_Image, int AnimationToCopy, bool MirrorHorizontally, bool MirrorVertically) diff --git a/SpriteLibrary/SpriteLibrary.csproj b/SpriteLibrary/SpriteLibrary.csproj index 5c110f4..6fb4541 100644 --- a/SpriteLibrary/SpriteLibrary.csproj +++ b/SpriteLibrary/SpriteLibrary.csproj @@ -89,6 +89,9 @@ + + +