Guest User

DiskMemImageGraphics clip() issue

a guest
Jan 22nd, 2013
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.59 KB | None | 0 0
  1. import java.awt.Color;
  2. import java.awt.Graphics2D;
  3. import java.awt.Rectangle;
  4. import java.awt.Shape;
  5. import java.awt.geom.AffineTransform;
  6. import java.awt.image.ColorModel;
  7. import java.awt.image.DataBuffer;
  8. import java.awt.image.SampleModel;
  9.  
  10. import javax.media.jai.JAI;
  11. import javax.media.jai.RasterFactory;
  12. import javax.media.jai.TiledImage;
  13.  
  14. import org.jaitools.tiledimage.DiskMemImage;
  15.  
  16. public class RenderSample {
  17.  
  18.     /**
  19.      * @param args
  20.      */
  21.     public static void main(String[] args) throws Exception {
  22. /*
  23.         BufferedImage image = new BufferedImage(600, 600,
  24.                                             BufferedImage.TYPE_INT_RGB);
  25. */
  26.  
  27.         SampleModel sampleModel = RasterFactory.createBandedSampleModel(
  28.                 DataBuffer.TYPE_BYTE,
  29.                 1024, 1024,
  30.                 3);
  31.         ColorModel cm = TiledImage.createColorModel(sampleModel);
  32.  
  33.         DiskMemImage image = new DiskMemImage(0, 0,
  34.                               600, 600,
  35.                               0, 0,
  36.                               sampleModel, cm);
  37.  
  38.  
  39.         Graphics2D gr = image.createGraphics();
  40.         gr.setPaint(Color.WHITE);
  41.         gr.fill(new Rectangle(0, 0, 600, 600));
  42.  
  43.         // AffineTransform[[0.318755336305853, 0.0, 420.03106689453125], [0.0, 0.318755336305853, 245.5029296875]]
  44.         AffineTransform transform = new AffineTransform(
  45.                 0.318755336305853, 0.0, 0.0, 0.318755336305853, 420.03106689453125, 245.5029296875);
  46.         gr.setTransform(transform);
  47.  
  48.         Shape s = new Rectangle(0, 0, 96, 83);
  49.  
  50.         // create an enbedded graphics
  51.         Graphics2D grr = (Graphics2D) gr.create();
  52.         // AffineTransform[[1.0, 0.0, -343.9285583496093], [0.0, 1.0, -502.5158386230469]]
  53.         transform = new AffineTransform(
  54.                 1.0, 0.0, 0.0, 1.0, -343.9285583496093, -502.5158386230469);
  55.         grr.transform(transform);
  56.         grr.clip(s.getBounds());
  57.  
  58.         AffineTransform t = new AffineTransform(transform);
  59.         t.invert();
  60.         s = t.createTransformedShape(s);
  61.  
  62.         System.out.println("s bounds: " + s.getBounds());
  63.         System.out.println("grr transform: " + grr.getTransform());
  64.         System.out.println("grr clip: " + grr.getClip());
  65.         System.out.println("grr clip bounds: " + grr.getClipBounds());
  66.  
  67.         System.out.println("intersects: " +
  68.                 s.getBounds().intersects(grr.getClip().getBounds2D()));
  69.  
  70.         grr.setPaint(Color.BLUE);
  71.         grr.draw(s);
  72.  
  73.         grr.dispose();
  74.  
  75.         JAI.create("filestore", image, "/tmp/sample.tif", "TIFF", null);
  76.     }
  77.  
  78.  
  79. }
Advertisement
Add Comment
Please, Sign In to add comment