home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Component;
- import java.awt.Image;
- import java.awt.MediaTracker;
- import java.awt.Rectangle;
-
- public class GIFBuilder extends Animator {
- private GIFImage myGIF;
- private int[] currentGG = new int[0];
-
- GIFBuilder(int var1, int var2) {
- this.myGIF = new GIFImage(var1, var2);
- }
-
- public Animation getAnimation() {
- return this.myGIF;
- }
-
- public void setFPS(int var1) {
- this.myGIF.setFPS(var1);
- }
-
- public int getFPS() {
- return this.myGIF.getFPS();
- }
-
- public int addImage(Image var1, Component var2) {
- int var3 = -1;
- MediaTracker var4 = new MediaTracker(var2);
- var4.addImage(var1, 1);
-
- try {
- var4.waitForID(1);
- GIFGraphics var5 = new GIFGraphics(var1, var2);
- if (this.currentGG.length == 0) {
- this.currentGG = new int[var5.pixels.length];
-
- for(int var14 = 0; var14 < this.currentGG.length; ++var14) {
- this.currentGG[var14] = var5.pixels[var14];
- }
- } else {
- int var6 = var5.height;
- int var7 = var5.width;
- int var8 = 0;
- int var9 = 0;
- int var10 = 0;
-
- for(int var11 = 0; var11 < var5.height; ++var11) {
- for(int var12 = 0; var12 < var5.width; ++var12) {
- if (var5.pixels[var10] == this.currentGG[var10]) {
- var5.pixels[var10++] = 0;
- } else {
- if (var12 < var7) {
- var7 = var12;
- }
-
- if (var11 < var6) {
- var6 = var11;
- }
-
- if (var7 + var9 < var12) {
- var9 = var12 - var7;
- }
-
- if (var6 + var8 < var11) {
- var8 = var11 - var6;
- }
-
- this.currentGG[var10] = var5.pixels[var10];
- ++var10;
- }
- }
- }
-
- var5.cropTo(new Rectangle(var7, var6, var9 + 1, var8 + 1));
- }
-
- var3 = this.myGIF.addImage(var5);
- } catch (Exception var13) {
- System.out.println("Unable to create GIFImage: " + var13);
- ((Throwable)var13).printStackTrace();
- }
-
- return var3;
- }
- }
-