import java.awt.*; import java.awt.event.*; import java.util.*; import java.net.*; import java.io.*; import javax.imageio.*; import java.awt.image.*; public class CreateSingle extends Frame implements ActionListener{ Button button; static int sprites=0; static String filename[]=new String[100]; public static void main(String argv[]){ try{ System.out.println("Arguments: "+argv.length); for(int i=0; i < argv.length; i++){ filename[i]=argv[i]; sprites++; } }catch(Exception except){System.out.println("Error: "+except.toString());} CreateSingle s=new CreateSingle(); s.show(); } public CreateSingle(){ setLayout(null); setVisible(true); setBounds(100,100,500,500); createSpriteSheet(); } public void actionPerformed(ActionEvent ae){ if(ae.toString().indexOf("button") > -1){ System.out.println("ACTION!!!"); createSpriteSheet(); } } public void createSpriteSheet(){ int W=40; int H=80; int NR=40; String playertype="0"; try{ if(filename[2] != null) playertype=filename[2]; // playertype=""; }catch(Exception exce){ } System.out.println(" CReating type : "+playertype + " WIDTH: 48 .. HEIGHT : 48"); int frame=1; BufferedImage image=new BufferedImage(48,48, BufferedImage.TYPE_INT_ARGB); Image sprite; Image imagelist[]=new Image[10]; // image=(BufferedImage)loadImage( "file:", filename[0] , this); readAnimatedGif("file:", filename[0] , imagelist); for(int i=0; i < 8; i++){ image=new BufferedImage(48,48, BufferedImage.TYPE_INT_ARGB); Graphics canvas=image.getGraphics(); // sprite=imagelist[i-1]; canvas.drawImage(imagelist[i], 0,0, this); try{ File file; if(playertype.length() > 0){ file=new File(filename[1]+"_"+i+"_"+playertype+".gif"); }else{ file=new File(filename[1]+"_"+i+".gif"); } ImageIO.write(image , "png", file); System.out.println("Written: "+file.toString()); }catch(Exception exception3){ System.out.println("Error writing: "+exception3.toString()); } } System.exit(0); } public Image loadImage(String Server, String filename, Component comp){ Image retval=null; MediaTracker mt; Image img=null; Date d=new Date(); URL url; boolean no_error=true; try{ System.out.println("Attemptying: "+Server+filename); // Add dummy to the URL so that it won't cache! url=new URL(Server+filename); System.out.println("file: "+url.toString()); if(url != null){ InputStream ia = url.openStream(); BufferedReader in = new BufferedReader(new InputStreamReader(ia)); String inputLine; if((inputLine = in.readLine()) == null ) no_error=false; else{ // If there is a 404 page -> not an image! if(inputLine.toUpperCase().indexOf("HTTP") > -1) no_error=false; else no_error=true; } in.close(); if(no_error){ try{ img=Toolkit.getDefaultToolkit().getImage(url); }catch(Exception eggegeg){img=null;no_error=false;} if(img!=null && no_error){ mt = new MediaTracker(comp); mt.addImage( img, 0 ); mt.waitForAll(); }else no_error=false; } } // if error URL IS NULL } catch (Exception ef) { System.out.println("error oading image: "+ef.toString()); no_error=false; } // test size if(img != null && no_error){ if(img.getWidth(comp) < 0 || img.getHeight(comp) < 0) img=null; } mt = null; if(!no_error)img=null; return img; } public Image removebackground(Image bi){ int width = bi.getWidth( this); int height= bi.getHeight( this); int[] pgPixels = new int[height* width]; PixelGrabber pg = new PixelGrabber(bi, 0, 0, width, height, pgPixels, 0,width); try { pg.grabPixels(); } catch (InterruptedException e) { e.printStackTrace(); } // try for (int y = 0; y > 24; int r = (pgPixels[i] & 0x00ff0000) >> 16; int g = (pgPixels[i] & 0x0000ff00) >> 8; int b = pgPixels[i] & 0x000000ff; /* if (r >= 210 && g >= 0 && b >= 210) { a = 0; pgPixels[i] = a | (r << 16) | (g << 8) | b; } // if pink? */ if (r == 0 && g == 0 && b == 0) { a = 0; pgPixels[i] = a | (r << 16) | (g << 8) | b; } } // for x } // for y Image retval = createImage(new MemoryImageSource(width, height, pgPixels, 0,width)); return retval; } public void readAnimatedGif(String Server, String filename, Image imagelist[] ){ GifDecoder d = new GifDecoder(); try{ URL url=new URL(Server+filename); if(url != null){ InputStream ia = url.openStream(); BufferedReader in = new BufferedReader(new InputStreamReader(ia)); d.read(ia); int n = d.getFrameCount(); int loopCount = d.getLoopCount(); int k=0; for (int i = 0; i < n+2; i++) { BufferedImage frame = d.getFrame(i); // frame i if(frame != null) imagelist[i]=frame; } } }catch(Exception e){ System.out.println("Global.readAnimationGif "+e.toString()); } } }