import java.awt.*; import java.applet.Applet; import java.awt.image.*; public class EzImg{ static EzImg o = null; public static void init(Applet ap){ o = new EzImg(ap); } public static Image create(Applet ap){ return new EzImg(ap).create(ap.size()); } public static Dimension size(Image img){ return new Dimension(img.getWidth(null), img.getHeight(null)); } public static Rectangle rect(Image img){ return new Rectangle(size(img)); } public Applet ap; int bakRGB; // for alphaImg public EzImg(Applet ap){ this.ap = ap; initBakRGB(); } void initBakRGB(){ Image img = create(new Dimension(1,1)); bakRGB = getPix(img,0,0); } public Image createImage(Dimension sz){ return ap.createImage(sz.width, sz.height); } public Image create(Dimension sz){ Image img = createImage(sz); Graphics g = img.getGraphics(); Color bk = g.getColor(); g.setColor(ap.getBackground()); g.fillRect(0,0,sz.width,sz.height); g.setColor(bk); return img; } public Image maru(Dimension sz, Color col){ Image img = create(sz); Graphics g = img.getGraphics(); g.setColor(col); g.fillOval(0,0,sz.width,sz.height); return img; } public Image btn(Dimension sz, Color col){ Image img = create(sz); Graphics g = img.getGraphics(); g.setColor(col); g.fillRoundRect(0,0,sz.width,sz.height,10, 10); return img; } public Image failImage(String err, String name){ Dimension sz = new Dimension(150,30); Image img = create(sz); Graphics g = img.getGraphics(); String s = "Err:"+err; g.drawString(s, 0, 10); g.drawString(name, 0, 20); return img; } public Image getImage(String name){ //Image img = ap.getImage(ap.getDocumentBase(), name); Image img = ap.getImage(ap.getCodeBase(), name); if(img==null) return failImage("Applet#getImage", name); MediaTracker mtr = new MediaTracker(ap); mtr.addImage(img, 0); try{ mtr.waitForAll(); }catch(InterruptedException e){} if(mtr.isErrorAny()){ return failImage("MediaTracker#waitForAll", name); } return img; } public int getPix(Image img, int x, int y){ Dimension sz = size(img); int[] pixs = new int[1]; int scan = sz.width; int offset = scan * y + x; PixelGrabber pg = new PixelGrabber( img, x, y, 1, 1, pixs, offset, scan ); try{ pg.grabPixels(); }catch(InterruptedException e){} return pixs[0]; } public int[] getPixs(Image img){ Dimension sz = size(img); int[] pixs = new int[sz.width * sz.height]; int offset = 0, scan = sz.width; PixelGrabber pg = new PixelGrabber( img, 0, 0, sz.width, sz.height, pixs, offset, scan ); try{ pg.grabPixels(); }catch(InterruptedException e){} return pixs; } public Image create(int[] pixs, int scan){ int w = scan; int h = pixs.length / scan; int off = 0; return ap.createImage(new MemoryImageSource(w,h,pixs,off,scan)); } public Image alphaImg(Image src, int alpha){ int [] pixs = getPixs(src); alpha <<= 24; for(int i=0;i