Package java.awt.image

Examples of java.awt.image.LookupOp


      img = new BufferedImage(5, 5, BufferedImage.TYPE_INT_ARGB);
    createImage(img);
   
    byte[] bytes = new byte[] {12, 23, 14, 35, 48, 2};
    ByteLookupTable t = new ByteLookupTable(0, bytes);
    LookupOp op = new LookupOp(t, null);
   
    BufferedImage dst = new BufferedImage(5, 5, BufferedImage.TYPE_INT_ARGB);
    dst = op.filter(img, dst);
    WritableRaster dest = dst.getRaster();
   
    harness.check(img.isAlphaPremultiplied(), premultiply);
    harness.check(dst.isAlphaPremultiplied(), false);
   
View Full Code Here


                                        {112, 123, 114, 135, 148, 102},
                                        {212, 223, 214, 235, 248, 202}
                                       };
   
    ShortLookupTable t = new ShortLookupTable(0, lutarray);
    LookupOp op = new LookupOp(t, null);
    BufferedImage dst = new BufferedImage(5, 5, BufferedImage.TYPE_INT_ARGB);

    /* This causes Sun to throw an exception...
     *
     * java.lang.IllegalArgumentException: Number of channels in the src (4)
     * does not match number of channels in the destination (2)
     *
     * I'm pretty sure it's a bug, but it's not one that's worth mimicing.
     * This test will not run on Sun.
     */
    try
    {
      dst = op.filter(img, dst);
      WritableRaster dest = dst.getRaster();
     
      harness.check(img.isAlphaPremultiplied(), premultiply);
      harness.check(dst.isAlphaPremultiplied(), false);
     
View Full Code Here

                                        {212, 223, 214, 235, 248, 202},
                                        {62, 73, 64, 85, 98, 52}
                                       };
   
    ShortLookupTable t = new ShortLookupTable(0, lutarray);
    LookupOp op = new LookupOp(t, null);
   
    BufferedImage dst = new BufferedImage(5, 5, BufferedImage.TYPE_INT_ARGB);
    dst = op.filter(img, dst);
    WritableRaster dest = dst.getRaster();
   
    harness.check(img.isAlphaPremultiplied(), premultiply);
    harness.check(dst.isAlphaPremultiplied(), false);
   
View Full Code Here

    // We get the ArrayIndexOutOfBoundsException that we would expect when
    // using a ShortLookupTable...
    short[] lutarray = new short[] {0, 1, 2, 3, 4, 5, 6, 7, 8};
    ShortLookupTable t = new ShortLookupTable(0, lutarray);
    LookupOp op = new LookupOp(t, null);
   
    try
    {
      op.filter(img, null);
      harness.check(false);
    }
    catch (ArrayIndexOutOfBoundsException ex)
    {
      harness.check(true);
    }

    // But a ByteLookupTable will give us undetermined results
    // (is a native array overflowing in sun's implementation?)
    byte[] bytes = new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8};
    ByteLookupTable t2 = new ByteLookupTable(0, bytes);
    op = new LookupOp(t2, null);
   
    try
    {
      op.filter(img, null);
      harness.check(true);
    }
    catch (ArrayIndexOutOfBoundsException ex)
    {
      // Allow an exception to be thrown anyways, since it makes more sense
      harness.check(true);
    }

    // And a test for the behaviour when source and dest have a different
    // number of bands (since the constructor does not throw an exception)
    r.setSample(1, 1, 0, 5);
    r.setSample(1, 1, 1, 4);
    r.setSample(1, 1, 2, 3);
    r.setSample(1, 1, 3, 2);
    BufferedImage dst = new BufferedImage(5, 5, BufferedImage.TYPE_USHORT_GRAY);
    try
    {
      // It doesn't throw an exception...
      op.filter(img, dst);
      harness.check(true);
    }
    catch (IllegalArgumentException ex)
    {
      harness.check(false);
    }
   
    // Now try a destination with *more* bands
    img = new BufferedImage(5, 5, BufferedImage.TYPE_USHORT_GRAY);
    r = img.getRaster();
    r.setSample(1, 1, 0, 5);
    dst = new BufferedImage(5, 5, BufferedImage.TYPE_INT_ARGB);
    try
    {
      // It doesn't throw an exception either...
      op.filter(img, dst);
      harness.check(true);
    }
    catch (IllegalArgumentException ex)
    {
      harness.check(false);
View Full Code Here

{
  public void test(TestHarness harness)
  {
    byte[] bytes = new byte[] {(byte) 0xAA, (byte) 0xBB};
    ByteLookupTable t = new ByteLookupTable(0, bytes);
    LookupOp op = new LookupOp(t, null);
    Raster raster = Raster.createWritableRaster(
        new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, 10, 20, 8), null);
    Raster dest = op.createCompatibleDestRaster(raster);
    harness.check(dest.getWidth(), 10);
    harness.check(dest.getHeight(), 20);
    harness.check(dest.getNumBands(), 1);
    harness.check(dest.getSampleModel() instanceof MultiPixelPackedSampleModel);
    harness.check(dest.getTransferType(), raster.getTransferType());
    harness.check(dest.getDataBuffer().getDataType(), raster.getDataBuffer().getDataType());
    harness.check(dest.getNumDataElements(), raster.getNumDataElements());
 
    // try null argument
    boolean pass = false;
    try
    {
      op.createCompatibleDestRaster(null);
    }
    catch (NullPointerException e)
    {
      pass = true;
    }
    harness.check(pass);
   
    // Try a different type
    raster = Raster.createBandedRaster(DataBuffer.TYPE_BYTE, 25, 40, 3, new Point(5, 5));
    Raster dst = op.createCompatibleDestRaster(raster);
    harness.check(dst.getNumBands(), raster.getNumBands());
    harness.check(dst.getTransferType(), raster.getTransferType());
    harness.check(dst.getDataBuffer().getDataType(), raster.getDataBuffer().getDataType());
    harness.check(dst.getNumDataElements(), raster.getNumDataElements());
   
    // Try a different number of bands
    raster = Raster.createBandedRaster(DataBuffer.TYPE_INT, 25, 40, 5, new Point(5, 5));
    dst = op.createCompatibleDestRaster(raster);
    harness.check(dst.getNumBands(), raster.getNumBands());
    harness.check(dst.getTransferType(), raster.getTransferType());
    harness.check(dst.getDataBuffer().getDataType(), raster.getDataBuffer().getDataType());
    harness.check(dst.getNumDataElements(), raster.getNumDataElements());
  }
View Full Code Here

    harness.checkPoint("(BufferedImage)");
    BufferedImage image = new BufferedImage(10, 20,
            BufferedImage.TYPE_INT_ARGB);
    byte[] bytes = new byte[] {(byte) 0xAA, (byte) 0xBB};
    ByteLookupTable t = new ByteLookupTable(0, bytes);
    LookupOp op = new LookupOp(t, null);
    Rectangle2D bounds = op.getBounds2D(image);
    harness.check(bounds.getWidth(), 10);
    harness.check(bounds.getHeight(), 20);
   
    // try null argument
    boolean pass = false;
    try
    {
      op.getBounds2D((BufferedImage) null);
    }
    catch (NullPointerException e)
    {
      pass = true;
    }
View Full Code Here

  public void testMethod2(TestHarness harness)
  {
    harness.checkPoint("(Raster)");   
    byte[] bytes = new byte[] {(byte) 0xAA, (byte) 0xBB};
    ByteLookupTable t = new ByteLookupTable(0, bytes);
    LookupOp op = new LookupOp(t, null);
    Raster raster = Raster.createWritableRaster(
            new MultiPixelPackedSampleModel(DataBuffer.TYPE_BYTE, 10, 20, 8),
            null);
    Rectangle2D bounds = op.getBounds2D(raster);
    harness.check(bounds.getWidth(), 10);
    harness.check(bounds.getHeight(), 20);
   
    // try null argument
    boolean pass = false;
    try
    {
      op.getBounds2D((Raster) null);
    }
    catch (NullPointerException e)
    {
      pass = true;
    }
View Full Code Here

    // Create an image to work on
    BufferedImage img = new BufferedImage(20, 20, BufferedImage.TYPE_USHORT_GRAY);
   
    byte[] bytes = new byte[] {(byte) 0xAA, (byte) 0xBB};
    ByteLookupTable t = new ByteLookupTable(0, bytes);
    LookupOp op = new LookupOp(t, null);
   
    // Simple tests
    BufferedImage dst = op.filter(img, null);
    harness.check(dst.getType(), op.createCompatibleDestImage(img, null).getType());
   
    dst = new BufferedImage(20, 20, BufferedImage.TYPE_USHORT_GRAY);
    try
    {
      dst = op.filter(img, dst);
      harness.check(true);
    }
    catch (IllegalArgumentException ex)
    {
      harness.check(false);
    }
   
    // Src and dst images can be the same
    try
    {
      op.filter(img, img);
      harness.check(true);
    }
    catch (IllegalArgumentException e)
    {
      harness.check(false);
    }
    finally
    {
      // Reset image for next test
      img = new BufferedImage(20, 20, BufferedImage.TYPE_USHORT_GRAY);
    }
   
    // Src and dst are different sizes - not allowed
    dst = new BufferedImage(30, 40, BufferedImage.TYPE_USHORT_GRAY);
    try
    {
      op.filter(img, dst);
      harness.check(false);
    }
    catch (IllegalArgumentException e)
    {
      harness.check(true);
    }
   
    // Src and dst have different tpyes (allowed)
    dst = new BufferedImage(20, 20, BufferedImage.TYPE_BYTE_GRAY);
    try
    {
      op.filter(img, dst);
      harness.check(true);
    }
    catch (IllegalArgumentException e)
    {
      harness.check(false);
    }
   
    // src and dst can even have different number of bands
    dst = new BufferedImage(20, 20, BufferedImage.TYPE_INT_ARGB);
    try
    {
      op.filter(img, dst);
      harness.check(true);
      harness.check(img.getType(), BufferedImage.TYPE_USHORT_GRAY);
      harness.check(dst.getType(), BufferedImage.TYPE_INT_ARGB);
    }
    catch (IllegalArgumentException ex)
View Full Code Here

{
  public void test(TestHarness harness)
  {
    byte[] bytes = new byte[] {(byte) 0xAA, (byte) 0xBB};
    ByteLookupTable t = new ByteLookupTable(0, bytes);
    LookupOp op = new LookupOp(t, null);
    Point2D p = new Point2D.Double(1.0, 2.0);
    Point2D pp = new Point2D.Double();
    Point2D p1 = op.getPoint2D(p, pp);
    harness.check(p1, p);
    harness.check(p1 == pp);
    harness.check(p1 != p);
   
    // try null dest
    p1 = op.getPoint2D(p, null);
    harness.check(p1, p);
    harness.check(p1 != p);
   
    // try src == dst
    p1 = op.getPoint2D(p, p);
    harness.check(p1, p);
    harness.check(p1 == p);
  }
View Full Code Here

       
        for ( int counter = 0; counter < 256; counter++ )
           invertArray[ counter ] = ( byte )( 255 - counter );  
       
        // create filter to invert colors
        BufferedImageOp invertFilter = new LookupOp(
           new ByteLookupTable( 0, invertArray ), null );
       
        // apply filter to displayImage
        return invertFilter.filter( buff, null );

    }
View Full Code Here

TOP

Related Classes of java.awt.image.LookupOp

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.