home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 January / PCO0198.ISO / browser / net_linx / java40.jar / netscape / plugin / composer / ImageEncoderPlugin.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  1.6 KB  |  53 lines

  1. package netscape.plugin.composer;
  2.  
  3. import java.awt.image.MemoryImageSource;
  4. import java.io.ByteArrayOutputStream;
  5. import java.io.File;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8. import java.io.OutputStream;
  9.  
  10. class ImageEncoderPlugin extends Plugin {
  11.    private ImageEncoder encoder;
  12.    private int width;
  13.    private int height;
  14.    private byte[][] pixels;
  15.    private String fileName;
  16.  
  17.    public ImageEncoderPlugin(ImageEncoder var1, int var2, int var3, byte[][] var4, String var5) {
  18.       this.encoder = var1;
  19.       this.width = var2;
  20.       this.height = var3;
  21.       this.pixels = var4;
  22.       this.fileName = var5;
  23.    }
  24.  
  25.    public boolean perform(Document var1) throws IOException {
  26.       int var2 = this.width * this.height;
  27.       int[] var3 = new int[var2];
  28.       int var4 = 0;
  29.  
  30.       for(int var5 = 0; var5 < this.height; ++var5) {
  31.          int var6 = 0;
  32.          byte[] var7 = this.pixels[var5];
  33.  
  34.          for(int var8 = 0; var8 < this.width; ++var8) {
  35.             var3[var4++] = -16777216 | (255 & var7[var6]) << 16 | (255 & var7[var6 + 1]) << 8 | 255 & var7[var6 + 2];
  36.             var6 += 3;
  37.          }
  38.       }
  39.  
  40.       MemoryImageSource var10 = new MemoryImageSource(this.width, this.height, var3, 0, this.width);
  41.       ByteArrayOutputStream var11 = new ByteArrayOutputStream(this.width * this.height / 2);
  42.       boolean var12 = this.encoder.encode(var10, var11);
  43.       if (var12) {
  44.          SecurityManager.enablePrivilege("SuperUser");
  45.          FileOutputStream var9 = new FileOutputStream(new File(this.fileName));
  46.          ((OutputStream)var9).write(var11.toByteArray());
  47.          ((OutputStream)var9).close();
  48.       }
  49.  
  50.       return var12;
  51.    }
  52. }
  53.