home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / java / awt / image / ConvolveOp.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  3.9 KB  |  147 lines

  1. package java.awt.image;
  2.  
  3. import java.awt.Graphics;
  4. import java.awt.Graphics2D;
  5. import java.awt.RenderingHints;
  6. import java.awt.geom.Point2D;
  7. import java.awt.geom.Rectangle2D;
  8. import java.util.Hashtable;
  9. import sun.awt.image.ImagingLib;
  10.  
  11. public class ConvolveOp implements BufferedImageOp, RasterOp {
  12.    Kernel kernel;
  13.    int edgeHint;
  14.    RenderingHints hints;
  15.    public static final int EDGE_ZERO_FILL = 0;
  16.    public static final int EDGE_NO_OP = 1;
  17.  
  18.    public ConvolveOp(Kernel var1, int var2, RenderingHints var3) {
  19.       this.kernel = var1;
  20.       this.edgeHint = var2;
  21.       this.hints = var3;
  22.    }
  23.  
  24.    public ConvolveOp(Kernel var1) {
  25.       this.kernel = var1;
  26.       this.edgeHint = 0;
  27.    }
  28.  
  29.    public int getEdgeCondition() {
  30.       return this.edgeHint;
  31.    }
  32.  
  33.    public final Kernel getKernel() {
  34.       return (Kernel)this.kernel.clone();
  35.    }
  36.  
  37.    public final BufferedImage filter(BufferedImage var1, BufferedImage var2) {
  38.       if (var1 == null) {
  39.          throw new NullPointerException("src image is null");
  40.       } else if (var1 == var2) {
  41.          throw new IllegalArgumentException("src image cannot be the same as the dst image");
  42.       } else {
  43.          boolean var3 = false;
  44.          ColorModel var4 = var1.getColorModel();
  45.          BufferedImage var6 = var2;
  46.          if (var4 instanceof IndexColorModel) {
  47.             IndexColorModel var7 = (IndexColorModel)var4;
  48.             var1 = var7.convertToIntDiscrete(var1.getRaster(), false);
  49.             var4 = var1.getColorModel();
  50.          }
  51.  
  52.          if (var2 == null) {
  53.             var2 = this.createCompatibleDestImage(var1, (ColorModel)null);
  54.             var6 = var2;
  55.          } else {
  56.             ColorModel var5 = var2.getColorModel();
  57.             if (var4.getColorSpace().getType() != var5.getColorSpace().getType()) {
  58.                var3 = true;
  59.                var2 = this.createCompatibleDestImage(var1, (ColorModel)null);
  60.                var5 = var2.getColorModel();
  61.             } else if (var5 instanceof IndexColorModel) {
  62.                var2 = this.createCompatibleDestImage(var1, (ColorModel)null);
  63.                var5 = var2.getColorModel();
  64.             }
  65.          }
  66.  
  67.          if (ImagingLib.filter(this, var1, var2) == null) {
  68.             throw new ImagingOpException("Unable to convolve src image");
  69.          } else {
  70.             if (var3) {
  71.                ColorConvertOp var14 = new ColorConvertOp(this.hints);
  72.                var14.filter(var2, var6);
  73.             } else if (var6 != var2) {
  74.                Graphics2D var15 = var6.createGraphics();
  75.  
  76.                try {
  77.                   ((Graphics)var15).drawImage(var2, 0, 0, (ImageObserver)null);
  78.                } finally {
  79.                   ((Graphics)var15).dispose();
  80.                }
  81.             }
  82.  
  83.             return var6;
  84.          }
  85.       }
  86.    }
  87.  
  88.    public final WritableRaster filter(Raster var1, WritableRaster var2) {
  89.       if (var2 == null) {
  90.          var2 = this.createCompatibleDestRaster(var1);
  91.       } else {
  92.          if (var1 == var2) {
  93.             throw new IllegalArgumentException("src image cannot be the same as the dst image");
  94.          }
  95.  
  96.          if (var1.getNumBands() != ((Raster)var2).getNumBands()) {
  97.             throw new ImagingOpException("Different number of bands in src  and dst Rasters");
  98.          }
  99.       }
  100.  
  101.       if (ImagingLib.filter(this, var1, var2) == null) {
  102.          throw new ImagingOpException("Unable to convolve src image");
  103.       } else {
  104.          return var2;
  105.       }
  106.    }
  107.  
  108.    public BufferedImage createCompatibleDestImage(BufferedImage var1, ColorModel var2) {
  109.       if (var2 == null) {
  110.          var2 = var1.getColorModel();
  111.          if (var2 instanceof IndexColorModel) {
  112.             var2 = ColorModel.getRGBdefault();
  113.          }
  114.       }
  115.  
  116.       int var4 = var1.getWidth();
  117.       int var5 = var1.getHeight();
  118.       BufferedImage var3 = new BufferedImage(var2, var2.createCompatibleWritableRaster(var4, var5), var2.isAlphaPremultiplied(), (Hashtable)null);
  119.       return var3;
  120.    }
  121.  
  122.    public WritableRaster createCompatibleDestRaster(Raster var1) {
  123.       return var1.createCompatibleWritableRaster();
  124.    }
  125.  
  126.    public final Rectangle2D getBounds2D(BufferedImage var1) {
  127.       return this.getBounds2D((Raster)var1.getRaster());
  128.    }
  129.  
  130.    public final Rectangle2D getBounds2D(Raster var1) {
  131.       return var1.getBounds();
  132.    }
  133.  
  134.    public final Point2D getPoint2D(Point2D var1, Point2D var2) {
  135.       if (var2 == null) {
  136.          var2 = new Point2D.Float();
  137.       }
  138.  
  139.       ((Point2D)var2).setLocation(var1.getX(), var1.getY());
  140.       return (Point2D)var2;
  141.    }
  142.  
  143.    public final RenderingHints getRenderingHints() {
  144.       return this.hints;
  145.    }
  146. }
  147.