From 7b663847efeadf053af97c88bcaccf76cdb3993d Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Mon, 28 Nov 2022 13:03:32 -0600 Subject: [PATCH] Engine is mostly feature-complete Co-authored-by: sigonasr2 --- sprites/Profont.png | Bin 0 -> 1430 bytes sprites/Profont_36.png | Bin 0 -> 2108 bytes sprites/book.png | Bin 0 -> 50244 bytes sprites/energyball.png | Bin 0 -> 15713 bytes sprites/player.png | Bin 0 -> 1822 bytes src/sig/JavaProjectTemplate.java | 59 +++++++++++++++++++++++++++-- src/sig/engine/AnimatedSprite.java | 4 ++ src/sig/engine/Font.java | 1 + src/sig/engine/Panel.java | 16 ++++---- src/sig/engine/Sprite.java | 40 ++++--------------- 10 files changed, 75 insertions(+), 45 deletions(-) create mode 100644 sprites/Profont.png create mode 100644 sprites/Profont_36.png create mode 100644 sprites/book.png create mode 100644 sprites/energyball.png create mode 100644 sprites/player.png diff --git a/sprites/Profont.png b/sprites/Profont.png new file mode 100644 index 0000000000000000000000000000000000000000..7208fe16782ba66fe80237070e9cbaaf29dd708e GIT binary patch literal 1430 zcmV;H1!?+;P)EX>4Tx04R}tkv&MmKp2MKrb zGpVGQ%dd!`SM(u<2!MdhEMr!Z((oN$_XzOyF2S?>&;2?2)q=(78j*O08KzCVPCT_~ z8=UuvqpU2e#OK7LCKX8h$aTfzH_j!O1)do-vza;KD6v@TV5Ngu+0=+9iQ}rKQ@)V% zSmnIMS*zAqt4{vHa6w;Q;yTS3QdqzuB#2N@Lj_gXNYJX2Vj)BONgw}^>zBx-kgEbl zj(KcAgY5dj|KN9Tt>VPEmlRF{-7k*wF${!ufo9!tzK)BVfh)c3-)I2SpQP8@ zTKotY*aj}H+nTZmT zjFc#Q&F9@coqhZFOsjuC14wdugA1zm0001HP)t-s00016rgdw{Y^&X5{O^tbxOwVg zV$4EbqbOK)7gjk5M`0LIhc#8ERbR<-bMmg4|HJa`kIU3 zh`s+=fuT5-yt0+lVOrS744Fc@^+%E=rDj41A%qY@RKe%ZR=G}emv%3TFZPLUUWH!e zeMb7~7AoF4z)b##Ya9GXUoS& zS`clw!WJWK~9j;oSyq3cU`TgTdS<(ls4oeR!RUW@{R5b?*S%Jtpd=?+qo`i&5*L#^*&}KV4Ip z`mGcVM(w4`w#+$gVv6ki4dxEw1N{-4I8Eo~&M^ThY7QSyCb86_-9X26o5=S9hFi74`o3Mshz zBR8p7FdDW-DMh=NE$8yGKRbWZi+5;D`wXZY!(%#tp=)wc6j@shg*=a@d#8GJzJOzW zEm~-fP38-&n`EMphqRRz)qAksuMRRkO>) z?zCu(u3*_BFo-5=YUUqI98WQ`gu2vMy`@a{&d&5o{aGFSIMgRZ+ literal 0 HcmV?d00001 diff --git a/sprites/Profont_36.png b/sprites/Profont_36.png new file mode 100644 index 0000000000000000000000000000000000000000..696bbf0b9bd53e0a8f833dea0f4ac82e5f7d733e GIT binary patch literal 2108 zcmcgsX;_l!8vc@LvXpYl5tm$Qa%+*MMJsce(9}}gGO?1+GEH+ms7WJ2hHIoo8x<;Z zN;IReEVB$S6Ec^ilavb)`B~y||3*s`gu&nE|9P(Wy`J~Ee?0f|UiW=HML}2}ejmKbu{4f}sR6ut#l<0C?1>Zg{hS;4F<^W3|;+un|tBX-D~x7SqO=%_9HclgY@eEoChIyXlj zzWjd55}eha`tH>HSS?=IJ^$gnXxN-i%r~nF;9>XH$6J)m7TvkOnIlvP@7Vq7tA3Lq z8g%KhWh|{Q+xhtBZph&gZX}9Ljp&mU+7}Jps|podn#O(Oi6S^3aU87XRq7ug9@_KP zGz9l@{f5GzAk5ORUf*~3uAEqhQTbVGFO4$ZurG1+_LrPZ^rVi>H*3FSraXXz<v7 zJsG-W`gg&RsA!7fy>?mQ-*~l|^^F9@rpsCvSo8ItiYE@C1dq~mxgFHeo39vi3MA!6x<4e0@ zdTu%phQPA^Vv53kJ)Xp$o_2vDIg0Y`M<7o*l-3og5UHNd=Gkj1m7ygH5#r-n7}9n7 zqQpS`r66|sYP4qEH#wq#foQCUWtOWx&oE6WC)L_z$=bdB#D@|Ee`%IxZb!#BwG|R& z+B<;c_1mRg{frJb@Fy)WHwxV2bO78x+Ps zc-+EY%FsbdUfZO>;>_n}i^Roo;@$*ntYrTe^U`!y#O3G=NCY~8sw5{?gzDkxQ@No9 zed8`80s#@0g_p7ti|-H6^Q0(Hb;bxSFnpUky3(r0gv$>b6$D572lJGPq-f7Q_1DQM zjxWN-*^|j}FRZ~h`C&C3Zf=-Nz6psz(y`P+NM0UEF zzjz(@9WsMf(E=mOH}0A`#`L&)fklcP4&S7Cqs-~PMUUTKpI~^cUBb?}=Iq{})6sHN z{jD*Q`PJq55@v+L^-8FaWeg5E1(}vLrk^z;XsfV1<=o)h%?3()aJiB?h^m;oSo_%( z8~wqA&~a!lT>W}+!KG3s`q()g<^C1?Ed$-SD`I1`;N%4Fy?_}WeV8P za}IpPeJd{*hFn?$D+sqJTirdanvzb=OySivFe8wkVs|XjtPW=URtSkawveO#^f^7C z^O+_1s%O4z%s=IWkS4BmuCM&^q_WL|f665X63N$s(pK{u0~_&b@oUEX7S@Yu#9>i2 z-ixOslG;AeY%>hkG;yC0;TMC}ciqhY^ZfL4BAjv+sUiJ>wgO&~bskjAlxFXTnO60z zn{Hy}t`D{vi832Ra@;?*u~BGEFx)(SKu7d&ib2US;=hWT{6Ub}b_lXETl)CSaw6;^ zZp6Ee$%xoLS3f1f-6#h`?5kd5Ys=efC?xfSlr86VDV#HO4nR}Hn~)O&>|{%~hXvuP z^n8WE1(epm#b7?4ZVDHO#GTi(TGnDM5FkU zDxXSfFWKTrE`mqf!}m{Gl=ruA9!wQ$RST?Wlx_k$Tq47MW+zhnHFhXl8zLoe}U63Dj%3wcb&DGO9b_zD6F!0Ww{O1)- zTpr(ck^V0$Fv^d(i2;Uc%6H`a^0FY5e1{t)r! literal 0 HcmV?d00001 diff --git a/sprites/book.png b/sprites/book.png new file mode 100644 index 0000000000000000000000000000000000000000..98dfd478bedfcc923f77f870967fac2a5f09f2fe GIT binary patch literal 50244 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 literal 0 HcmV?d00001 diff --git a/sprites/energyball.png b/sprites/energyball.png new file mode 100644 index 0000000000000000000000000000000000000000..8356d56579c954992346a0b625e72ee8e46cb0e5 GIT binary patch literal 15713 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 literal 0 HcmV?d00001 diff --git a/sprites/player.png b/sprites/player.png new file mode 100644 index 0000000000000000000000000000000000000000..721be255e83ac233eec947d4f81b6fdcf31d6618 GIT binary patch literal 1822 zcmV+(2jTdMP)EX>4Tx04R}tkv&MmKpe$iQ>CJnf_4z;kfAzR5EXIMDionYs1;guFuC*#nlvOS zE{=k0!NHHks)LKOt`4q(Aou~|=;Wm6A|?JWEwqU7;J6>}?mh0_0YbgZG^=YI&~)2O zCE{WxyDA1=(T4~IFoTfHEMrcRlJFc~_we!cF2=LG&;2?2)ttoupGZ8*4AUmwAfDc| z4bJ<-VOEq?;&b9LlP*a7$aSU3Z=4G*3p_Jyrc?98VPdh+!Ab|SqNx#25l2-`r+gvP zWR>$4XRTait$Xqp26Ot#GS_KFkia6AAVGwJDoQBBMvPXS6bmWZk9+usUB5&wgPQ?biX*x#|RME1sXNS`95}>#tGnm2CnqBzfuQgK1r{& zwdfHL+6FGJ+nTZmTgF zj20++-Q(RooxS~grq$mMuVr$-)5Er)00006VoOIv0M7u=0M7$1$|(Q<010qNS#tmY zE+YT{E+YYWr9XB6000McNliru<_jDWI48{E^@jie1sh33K~#9!?OaVvR96_iZxw1~=>m13F&ckkL(<@a#zkX7%BoGeXuEOK zpU`OOsz9P9>cUn8LIV;68U=Bjaq*q2c~1x5yuZ2k&3873H}mG*`<-*&cYnC=3Bh16 z7z_r3!C){-2u9Ea_SW{+_STA3I6PwcdNehWnn+EE3t<%;@yobZS-!r2_(ww?Kl`tU z|3*Loqa0%gar`^t#33BNO+5E8@%$FzCmj&vE6oi*Mn|y|#1(^x|1$Byzli^993LRg z^&$S8=JB)tiuxZ=0+7a6uOZ&Bnt0<*;<{_Z|J^3OJw<%IjClGH8pQ7qD zIJt}X(JA7)Xed8@MEpyf_}2Htk2_TB8O=RiIWm3Ir^LG#h+BRoZWto2JWo9H2l16U z;)|`s14q##oYQS;!2avuf5c~9_F<^=KJj}8iBrgEbq|QEmJu)i1m~?KK75?G?H}Ux zF;sh6&1Ns_CF?2cE#r`J$v9=)QU|Gv)Jf_lb<_^*zvBK!eO6=}0(k>Npl^wnA|r|$ zmh*R-^U{ib;&cyXz%PEr7iU$op6ZuP($OG#g!EoIuGx&!TJrq-bLg@GI-$o)>_HE) zP16Lx{wwak-y;AF0c*Y?eg{LK=nRH5d4zm^*n!{wrDywpUhfWj@kVFNI!WDLS}oQE z?7!mv`jMjiTkVCUw*e?7!;%d!7Ky ziy_Gj@o%Sz-+ULRrJY?jm&;RLe~}h_`t8=!Cemh|q;AQKSyy$z{_Ewx=Lx{PIy-g8 z{B6Z{{NeHHZTZ^bGI`^k9fmk^HPhovR$Ybi zy8_DmU9wz{FK?K2lDfUX8uP!5+sHUm1o03TQ~kF^QXtTkAJ%uUBNVW zqsv^b=P0x2X6<47r0$B``0T%?{ztqqKs=ISvj*79g5`x`(L8|M;sPdfebX_ zZm~mPPqe5MrHM+54moEHQjADn0=n_p|B(3aa0C!v;mu-)SRyZ2q75K!(ZS{7m}_6y z{}S`xb^^dtUHd8HEDRNQ&S@C->MLAtp|pD)yY=!{mxUqelRrH_`yV#{3w;(KR;Umz zH%7Q!;wU$-wG{h0{x$eQeR2r)KV<$FI0Z27=`yy$V$Bs*t`jW$@`?QqoBstSfb0*d z5B=0=c*U-#Up}$_Ve>yySYX28;!n3=1f!cfpV$X>*8lm&J&Mg2UQgwcZ@b; z&hi*1;)M}UA=o^2NHq`Z*#Mdm#}ss~0GG)vv3Sfghef6go*#dRS6@vg7uP@2THK*7 z`>(tI(O`u58;>=n4-+RaL`mS4NQsLWkf1@_I!OTzq;P?H-K?kjud6p_?5%jwL(`W? z^gj~MwS%F{92(Be)8QD(vj3&+KZC(wFc=I5gTY`h7z_r3!6+J@0XdS*d^g|(aR2}S M07*qoM6N<$f<+I4WdHyG literal 0 HcmV?d00001 diff --git a/src/sig/JavaProjectTemplate.java b/src/sig/JavaProjectTemplate.java index 94d2287..4d4f923 100644 --- a/src/sig/JavaProjectTemplate.java +++ b/src/sig/JavaProjectTemplate.java @@ -1,7 +1,22 @@ package sig; +import sig.engine.AnimatedSprite; import sig.engine.Color; +import sig.engine.Font; +import sig.engine.Key; import sig.engine.Panel; +import sig.engine.Sprite; +import sig.engine.Transform; + +import java.awt.event.KeyEvent; + +class Player{ + AnimatedSprite spr=new AnimatedSprite("player.png",32,32); + double x=200,y=200; + + double animationFrame=0; + double animationSpd=2; +} public class JavaProjectTemplate { public static final String PROGRAM_NAME="Sig's Java Project Template"; @@ -9,17 +24,53 @@ public class JavaProjectTemplate { public static int WINDOW_HEIGHT=720; public static Panel game; - public static void updateGame() { + Player pl = new Player(); + Sprite bookSpr = new Sprite("book.png"); + + JavaProjectTemplate(){ + //Initialize your game here. } - public static void drawGame() { + public void updateGame(double fElapsedTime) { + //Put game update logic in here. + + pl.animationFrame+=pl.animationSpd*fElapsedTime; + + if (Key.isKeyHeld(KeyEvent.VK_A)) { + pl.x-=200*fElapsedTime; + } + if (Key.isKeyHeld(KeyEvent.VK_D)) { + pl.x+=200*fElapsedTime; + } + if (Key.isKeyHeld(KeyEvent.VK_W)) { + pl.y-=200*fElapsedTime; + } + if (Key.isKeyHeld(KeyEvent.VK_S)) { + pl.y+=200*fElapsedTime; + } + } + + public void drawGame() { + //Put rendering logic in here. + game.Clear(Color.BRIGHT_BLUE); + game.Draw(100,20,Color.BLACK); game.Draw_Line(10,10,35,35,Color.BLACK); - game.FillCircle(Color.MAGENTA,200,200,50); + + game.Draw_Sprite(450,75,bookSpr); + game.Draw_Sprite(450,75+bookSpr.getHeight(),bookSpr,Transform.VERTICAL); + + game.Draw_Animated_Sprite(pl.x,pl.y,pl.spr,pl.animationFrame); + + game.Draw_Text(10,40,new sig.engine.String("Hello World!"),Font.PROFONT_12); + game.Draw_Text_Ext(10,52,new sig.engine.String("Hello World 2!"),Font.PROFONT_36,Color.MAGENTA); + + game.Draw_ } public static void main(String[] args) { - Panel.InitializeEngine(); + JavaProjectTemplate gameInstance=new JavaProjectTemplate(); + Panel.InitializeEngine(gameInstance); } } diff --git a/src/sig/engine/AnimatedSprite.java b/src/sig/engine/AnimatedSprite.java index 3996439..94b1906 100644 --- a/src/sig/engine/AnimatedSprite.java +++ b/src/sig/engine/AnimatedSprite.java @@ -8,6 +8,10 @@ public class AnimatedSprite extends Sprite{ int frames; Rectangle[] frames_to_Rectangle; + public AnimatedSprite(java.lang.String filename, int width, int height){ + this(new File(Sprite.SPRITES_FOLDER.getAbsolutePath(),filename),width,height); + } + AnimatedSprite(File filename, int width, int height){ super(filename); this.originalWidth=this.width; diff --git a/src/sig/engine/Font.java b/src/sig/engine/Font.java index 7b323f4..c849963 100644 --- a/src/sig/engine/Font.java +++ b/src/sig/engine/Font.java @@ -2,6 +2,7 @@ package sig.engine; public enum Font { PROFONT_12((byte)7,(byte)14,Sprite.PROFONT), + PROFONT_36((byte)21,(byte)42,Sprite.PROFONT_36), ; byte glyphWidth,glyphHeight; diff --git a/src/sig/engine/Panel.java b/src/sig/engine/Panel.java index 0c71ef6..8f23649 100644 --- a/src/sig/engine/Panel.java +++ b/src/sig/engine/Panel.java @@ -29,6 +29,7 @@ import sig.JavaProjectTemplate; public class Panel extends JPanel implements Runnable,KeyListener { JFrame window; + static JavaProjectTemplate gameInstance; public int pixel[]; final int CIRCLE_PRECISION=32; final int OUTLINE_COL=Color.BRIGHT_WHITE.getColor(); @@ -63,12 +64,14 @@ public class Panel extends JPanel implements Runnable,KeyListener { public static Panel p; public static JFrame f; - public static void InitializeEngine(){ + public static void InitializeEngine(JavaProjectTemplate instance){ System.setProperty("sun.java2d.transaccel", "True"); System.setProperty("sun.java2d.d3d", "True"); System.setProperty("sun.java2d.ddforcevram", "True"); System.setProperty("sun.java2d.xrender", "True"); + gameInstance=instance; + RENDERHINTS.put(RenderingHints.KEY_COLOR_RENDERING,RenderingHints.VALUE_COLOR_RENDER_SPEED); RENDERHINTS.put(RenderingHints.KEY_DITHERING,RenderingHints.VALUE_DITHER_DISABLE); RENDERHINTS.put(RenderingHints.KEY_FRACTIONALMETRICS,RenderingHints.VALUE_FRACTIONALMETRICS_OFF); @@ -97,7 +100,7 @@ public class Panel extends JPanel implements Runnable,KeyListener { dt += System.nanoTime() - lastGameTime; lastGameTime = System.nanoTime(); while (dt >= UPDATE_LOOP_NANOTIME) { - JavaProjectTemplate.updateGame(); + gameInstance.updateGame(UPDATE_LOOP_NANOTIME/1000000000d); dt -= UPDATE_LOOP_NANOTIME; TIME += UPDATE_LOOP_NANOTIME; } @@ -231,7 +234,7 @@ public class Panel extends JPanel implements Runnable,KeyListener { public /* abstract */ void render(){ - JavaProjectTemplate.drawGame(); + gameInstance.drawGame(); } public void FillCircle(Color col,double center_x,double center_y,double r) { @@ -297,10 +300,12 @@ public class Panel extends JPanel implements Runnable,KeyListener { nextScanLine = scanLine+1; do { for (int i=0;i=active_edges.size()-1) break; Edge e1 = active_edges.get(i); Edge e2 = active_edges.get(i+1); //System.out.println("Drawing from "+((int)Math.round(e1.x_of_min_y))+" to "+e2.x_of_min_y+" on line "+scanLine); for (int x=(int)Math.round(e1.x_of_min_y);x<=e2.x_of_min_y;x++) { + if (x<0||x>JavaProjectTemplate.WINDOW_WIDTH) continue; int index = (scanLine+(int)y_offset)*getWidth()+x+(int)x_offset; if (index=0) { Draw(index,col.getColor()); @@ -388,11 +393,7 @@ public class Panel extends JPanel implements Runnable,KeyListener { } finally { g2.dispose(); } - } else { - System.out.println("Invalid frame!"); } - } else { - System.out.println("Invalid frame!"); } updateFPSCounter(); //System.out.println("Repaint "+frameCount++); @@ -573,7 +574,6 @@ public class Panel extends JPanel implements Runnable,KeyListener { sprite.getWidth()-(X-(int)xOffset): (X-(int)xOffset)) +(int)x; - if (((sprite.getImg().getRGB(X,Y)>>>24)&0xFF)==0||index<0||index>=pixel.length) { continue; } else { diff --git a/src/sig/engine/Sprite.java b/src/sig/engine/Sprite.java index 5c3e3a5..50849ff 100644 --- a/src/sig/engine/Sprite.java +++ b/src/sig/engine/Sprite.java @@ -3,54 +3,28 @@ package sig.engine; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; -import java.awt.image.DataBufferByte; import javax.imageio.ImageIO; public class Sprite{ - public final static File SPRITES_FOLDER = new File("..","sprites"); - public final static File BACKGROUNDS_FOLDER = new File("..","backgrounds"); - - //NANA(new File(SPRITES_FOLDER,"3x.png")), - public static Sprite NANA_SMALL = new Sprite(new File(SPRITES_FOLDER,"1x.gif")); - public static Sprite TILE_SHEET = new Sprite(new File(SPRITES_FOLDER,"tiles.gif")); - public static Sprite MAP_TILE_INFO = new Sprite(new File(SPRITES_FOLDER,"maptileinfo.gif")); - public static Sprite PROFONT = new Sprite(new File(SPRITES_FOLDER,"Profont.gif")); - public static Sprite BACKGROUND1 = new Sprite(new File(BACKGROUNDS_FOLDER,"back1.gif")); - public static Sprite BACKGROUND2 = new Sprite(new File(BACKGROUNDS_FOLDER,"back2.gif")); - public static Sprite BACKGROUND3 = new Sprite(new File(BACKGROUNDS_FOLDER,"back3.gif")); - public static AnimatedSprite ERINOAH = new AnimatedSprite(new File(SPRITES_FOLDER,"erinoah.gif"),48,48); - public static AnimatedSprite ERINA = new AnimatedSprite(new File(SPRITES_FOLDER,"erina.gif"),32,32); - public static AnimatedSprite ERINA_WALK = new AnimatedSprite(new File(SPRITES_FOLDER,"erina_walk.gif"),32,32); - public static AnimatedSprite ERINA_JUMP_RISE1 = new AnimatedSprite(new File(SPRITES_FOLDER,"erina_jump_rise1.gif"),32,32); - public static AnimatedSprite ERINA_JUMP_RISE = new AnimatedSprite(new File(SPRITES_FOLDER,"erina_jump_rise.gif"),32,32); - public static AnimatedSprite ERINA_JUMP_FALL1 = new AnimatedSprite(new File(SPRITES_FOLDER,"erina_jump_fall1.gif"),32,32); - public static AnimatedSprite ERINA_JUMP_FALL = new AnimatedSprite(new File(SPRITES_FOLDER,"erina_jump_fall.gif"),32,32); - public static AnimatedSprite ERINA_SLIDE1 = new AnimatedSprite(new File(SPRITES_FOLDER,"erina_slide1.gif"),32,32); - public static AnimatedSprite ERINA_SLIDE = new AnimatedSprite(new File(SPRITES_FOLDER,"erina_slide.gif"),32,32); - public static AnimatedSprite KNIFE_SWING = new AnimatedSprite(new File(SPRITES_FOLDER,"knife-swing.gif"),32,32); - public static AnimatedSprite RED_STAND = new AnimatedSprite(new File(SPRITES_FOLDER,"redgirl_stand.gif"),32,32); - public static AnimatedSprite RED_WALK = new AnimatedSprite(new File(SPRITES_FOLDER,"redgirl_walk.gif"),32,32); - public static AnimatedSprite BLUE_STAND = new AnimatedSprite(new File(SPRITES_FOLDER,"bluegirl_stand.gif"),32,32); - public static AnimatedSprite BLUE_WALK = new AnimatedSprite(new File(SPRITES_FOLDER,"bluegirl_walk.gif"),32,32); - public static AnimatedSprite YELLOW_STAND = new AnimatedSprite(new File(SPRITES_FOLDER,"yellowgirl_stand.gif"),32,32); - public static AnimatedSprite YELLOW_WALK = new AnimatedSprite(new File(SPRITES_FOLDER,"yellowgirl_walk.gif"),32,32); - public static AnimatedSprite GREEN_STAND = new AnimatedSprite(new File(SPRITES_FOLDER,"greengirl_stand.gif"),32,32); - public static AnimatedSprite GREEN_WALK = new AnimatedSprite(new File(SPRITES_FOLDER,"greengirl_walk.gif"),32,32); - public static Sprite WATER_OVERLAY = new Sprite(new File(BACKGROUNDS_FOLDER,"water-overlay.gif")); - - + public final static Sprite PROFONT = new Sprite("Profont.png"); + public final static Sprite PROFONT_36 = new Sprite("Profont_36.png"); BufferedImage img; int height; int width; + + public Sprite(java.lang.String filename){ + this(new File(SPRITES_FOLDER.getAbsolutePath(),filename)); + } Sprite(File filename){ try { BufferedImage img = ImageIO.read(filename); this.width=img.getWidth(); this.height=img.getHeight(); + this.img=img; } catch (IOException e) { e.printStackTrace(); }