home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2003 January / maximum-cd-2003-01.iso / Software / Utilities / JPerk / jperk.exe / _SETUP.1 / ImageFade2ech.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-01-11  |  4.5 KB  |  218 lines

  1. import java.applet.Applet;
  2. import java.awt.Component;
  3. import java.awt.Event;
  4. import java.awt.Graphics;
  5. import java.awt.Image;
  6. import java.awt.MediaTracker;
  7. import java.awt.image.ImageObserver;
  8. import java.awt.image.MemoryImageSource;
  9. import java.net.URL;
  10. import java.util.Vector;
  11.  
  12. public final class ImageFade2ech extends Applet implements Runnable {
  13.    boolean inapplet = false;
  14.    Graphics bufferG;
  15.    Image bufferI;
  16.    Image[] images;
  17.    int width;
  18.    int height;
  19.    int index;
  20.    int transition_count = 10;
  21.    int transition_speed = 100;
  22.    int pause = 5000;
  23.    // $FF: renamed from: mt java.awt.MediaTracker
  24.    MediaTracker field_0;
  25.    String target = "_self";
  26.    Thread woohoo;
  27.    URL[] urls;
  28.  
  29.    public void init() {
  30.       this.field_0 = new MediaTracker(this);
  31.       this.width = ((Component)this).size().width;
  32.       this.height = ((Component)this).size().height;
  33.       if (this.bufferG == null) {
  34.          this.bufferI = ((Component)this).createImage(this.width, this.height);
  35.          this.bufferG = this.bufferI.getGraphics();
  36.       }
  37.  
  38.       if (((Applet)this).getParameter("TARGET") != null) {
  39.          this.target = ((Applet)this).getParameter("TARGET");
  40.       }
  41.  
  42.       if (((Applet)this).getParameter("PAUSE") != null) {
  43.          this.pause = Integer.parseInt(((Applet)this).getParameter("PAUSE"));
  44.       }
  45.  
  46.       if (((Applet)this).getParameter("TRANSITION.STEPS") != null) {
  47.          this.transition_count = Integer.parseInt(((Applet)this).getParameter("TRANSITION.STEPS"));
  48.       }
  49.  
  50.       if (((Applet)this).getParameter("TRANSITION.SPEED") != null) {
  51.          this.transition_speed = Integer.parseInt(((Applet)this).getParameter("TRANSITION.SPEED"));
  52.       }
  53.  
  54.       int var1 = 0;
  55.  
  56.       Vector var2;
  57.       for(var2 = new Vector(); ((Applet)this).getParameter("IMAGE." + var1) != null; ++var1) {
  58.          Object var3 = null;
  59.  
  60.          try {
  61.             Image var6 = ((Applet)this).getImage(((Applet)this).getDocumentBase(), ((Applet)this).getParameter("IMAGE." + var1));
  62.             if (var6 != null) {
  63.                var2.addElement(var6);
  64.             }
  65.  
  66.             this.field_0.addImage(var6, var1);
  67.          } catch (Exception var5) {
  68.          }
  69.       }
  70.  
  71.       this.images = new Image[var2.size()];
  72.       var2.copyInto(this.images);
  73.       this.urls = new URL[this.images.length];
  74.  
  75.       for(int var7 = 0; var7 < this.urls.length; ++var7) {
  76.          if (((Applet)this).getParameter("URL." + var7) != null) {
  77.             try {
  78.                this.urls[var7] = new URL(((Applet)this).getDocumentBase(), ((Applet)this).getParameter("URL." + var7));
  79.             } catch (Exception var4) {
  80.             }
  81.          }
  82.       }
  83.  
  84.       this.index = 0;
  85.    }
  86.  
  87.    public void run() {
  88.       while(true) {
  89.          if (this.inapplet && this.urls[this.index] != null) {
  90.             ((Applet)this).showStatus(this.urls[this.index].toString());
  91.          } else {
  92.             ((Applet)this).showStatus("");
  93.          }
  94.  
  95.          int var1 = (this.index + 1) % this.images.length;
  96.          long var2 = System.currentTimeMillis();
  97.  
  98.          try {
  99.             if (!this.field_0.checkID(this.index)) {
  100.                this.field_0.waitForID(this.index);
  101.             }
  102.  
  103.             this.bufferG.drawImage(this.images[this.index], 0, 0, this);
  104.             ((Component)this).repaint();
  105.             if (!this.field_0.checkID(var1)) {
  106.                this.field_0.waitForID(var1);
  107.             }
  108.          } catch (Exception var21) {
  109.          }
  110.  
  111.          Image[] var4 = new Image[this.transition_count];
  112.          Pixelator3 var5 = new Pixelator3(this.images[this.index]);
  113.          Pixelator3 var6 = new Pixelator3(this.images[var1]);
  114.          int[][] var7 = new int[this.transition_count][this.height * this.width];
  115.  
  116.          for(int var8 = 0; var8 < this.transition_count; ++var8) {
  117.             for(int var9 = 0; var9 < this.height; ++var9) {
  118.                for(int var10 = 0; var10 < this.width; ++var10) {
  119.                   int var11 = var5.imgpixels[var9][var10];
  120.                   int var12 = var6.imgpixels[var9][var10];
  121.                   int var13 = var11 >> 16 & 255;
  122.                   int var14 = var11 >> 8 & 255;
  123.                   int var15 = var11 & 255;
  124.                   int var16 = var12 >> 16 & 255;
  125.                   int var17 = var12 >> 8 & 255;
  126.                   int var18 = var12 & 255;
  127.                   var7[var8][var9 * this.width + var10] = -16777216 | var13 + (var16 - var13) * (var8 + 1) / this.transition_count << 16 | var14 + (var17 - var14) * (var8 + 1) / this.transition_count << 8 | var15 + (var18 - var15) * (var8 + 1) / this.transition_count;
  128.                }
  129.             }
  130.  
  131.             var4[var8] = ((Component)this).createImage(new MemoryImageSource(this.width, this.height, var7[var8], 0, this.width));
  132.          }
  133.  
  134.          long var22 = System.currentTimeMillis();
  135.          int var23 = (int)(var22 - var2);
  136.          if (var23 < this.pause) {
  137.             try {
  138.                Thread.sleep((long)(this.pause - var23));
  139.             } catch (Exception var20) {
  140.             }
  141.          }
  142.  
  143.          for(int var24 = 0; var24 < this.transition_count; ++var24) {
  144.             this.bufferG.drawImage(var4[var24], 0, 0, this);
  145.             ((Component)this).repaint();
  146.  
  147.             try {
  148.                Thread.sleep((long)this.transition_speed);
  149.             } catch (Exception var19) {
  150.             }
  151.          }
  152.  
  153.          this.index = (this.index + 1) % this.images.length;
  154.       }
  155.    }
  156.  
  157.    public void paint(Graphics var1) {
  158.       var1.drawImage(this.bufferI, 0, 0, this);
  159.    }
  160.  
  161.    public void update(Graphics var1) {
  162.       var1.drawImage(this.bufferI, 0, 0, (ImageObserver)this);
  163.    }
  164.  
  165.    public void start() {
  166.       if (this.woohoo == null) {
  167.          this.woohoo = new Thread(this);
  168.       }
  169.  
  170.       if (((Applet)this).getParameter("AUTHOR").equals("Eric Harshbarger, http://www.ericharshbarger.org") && ((Applet)this).getParameter("COPYRIGHT").equals("ImageFade applet, Copyright 1998, Eric Harshbarger")) {
  171.          this.woohoo.start();
  172.       } else {
  173.          System.out.println("AUTHOR & COPYRIGHT parameters are incorrect.");
  174.       }
  175.    }
  176.  
  177.    public void stop() {
  178.       if (this.woohoo != null) {
  179.          this.woohoo.stop();
  180.          this.woohoo = null;
  181.       }
  182.  
  183.    }
  184.  
  185.    public void destroy() {
  186.       if (this.bufferG != null) {
  187.          this.bufferG.dispose();
  188.       }
  189.  
  190.    }
  191.  
  192.    public boolean mouseEnter(Event var1, int var2, int var3) {
  193.       this.inapplet = true;
  194.       if (this.urls[this.index] != null) {
  195.          ((Applet)this).showStatus(this.urls[this.index].toString());
  196.       }
  197.  
  198.       return true;
  199.    }
  200.  
  201.    public boolean mouseExit(Event var1, int var2, int var3) {
  202.       this.inapplet = false;
  203.       ((Applet)this).showStatus("");
  204.       return false;
  205.    }
  206.  
  207.    public boolean mouseUp(Event var1, int var2, int var3) {
  208.       if (this.urls[this.index] != null) {
  209.          try {
  210.             ((Applet)this).getAppletContext().showDocument(this.urls[this.index], this.target);
  211.          } catch (Exception var4) {
  212.          }
  213.       }
  214.  
  215.       return true;
  216.    }
  217. }
  218.