Check AlignmentOpImage : JAI « 2D Graphics GUI « Java






Check AlignmentOpImage

/*

Java Media APIs: Cross-Platform Imaging, Media and Visualization
Alejandro Terrazas
Sams, Published November 2002, 
ISBN 0672320940
*/

import javax.media.jai.ImageLayout;
import javax.media.jai.PointOpImage;
import java.awt.image.RenderedImage;
import java.awt.image.Raster;
import java.awt.image.WritableRaster;

public class CheckAlignmentOpImage extends PointOpImage {

  public CheckAlignmentOpImage(RenderedImage s1, RenderedImage s2, int sp,
      ImageLayout layout, java.util.Map configuration,
      boolean cobbleSources) {

    super(s1, s2, layout, configuration, cobbleSources);
    source1 = s1;
    source2 = s2;
    samplingPeriod = sp;
  }

  public Raster computeTile(int x, int y) {
    Raster r1 = source1.getTile(x, y);
    Raster r2 = source2.getTile(x, y);

    int xBounds = r1.getWidth();
    if (r2.getWidth() < xBounds)
      xBounds = r2.getWidth();
    int yBounds = r1.getHeight();
    if (r2.getHeight() < yBounds)
      yBounds = r2.getHeight();

    WritableRaster wr;
    wr = r1.createCompatibleWritableRaster(xBounds, yBounds);

    int tmpi;
    int tmpj;
    for (int i = 0; i < wr.getWidth(); i++)
      for (int j = 0; j < wr.getHeight(); j++) {
        tmpi = i / samplingPeriod;
        tmpj = j / samplingPeriod;
        if ((tmpi % 2 == 0) && (tmpj % 2 == 0))
          wr.setDataElements(i, j, r2.getDataElements(i, j, null));
        else if ((tmpi % 2 != 0) && (tmpj % 2 != 0))
          wr.setDataElements(i, j, r2.getDataElements(i, j, null));
        else
          wr.setDataElements(i, j, r1.getDataElements(i, j, null));
      }
    return wr;
  }

  private RenderedImage source1, source2;

  private int samplingPeriod;
}



           
       








Related examples in the same category

1.Lists all allowable JAI operations
2.Check Alignment RIF
3.Check Alignment Descriptor