Examples of ComponentSampleModel


Examples of java.awt.image.ComponentSampleModel

                MultiPixelPackedSampleModel mppsm =
                    (MultiPixelPackedSampleModel) sm;
                scanlineStride = mppsm.getScanlineStride();
            }else if(sm instanceof ComponentSampleModel){
                smType = CSM;
                ComponentSampleModel csm =
                    (ComponentSampleModel) sm;
                scanlineStride = csm.getScanlineStride();
            }else{
                // awt.4D=The raster is incompatible with this ColorModel
                throw new IllegalArgumentException(Messages.getString("awt.4D")); //$NON-NLS-1$
            }

        }else if(cm instanceof ComponentColorModel){
            cmType = CCM;
            if(sm instanceof ComponentSampleModel){
                ComponentSampleModel csm = (ComponentSampleModel) sm;
                scanlineStride = csm.getScanlineStride();
                bankIndeces = csm.getBankIndices();
                bandOffsets = csm.getBandOffsets();
                if(sm instanceof PixelInterleavedSampleModel){
                    smType = PISM;
                }else if(sm instanceof BandedSampleModel){
                    smType = BSM;
                }else{
View Full Code Here

Examples of java.awt.image.ComponentSampleModel

                boolean useDataBuffer = false;
                if(compression != COMP_JPEG_TTN2) { // JPEG access Raster
                    if(checkContiguous) {
                        if(sampleSize[0] == 8) { // 8-bit
                            ComponentSampleModel csm =
                                (ComponentSampleModel)src.getSampleModel();
                            int[] bankIndices = csm.getBankIndices();
                            int[] bandOffsets = csm.getBandOffsets();
                            int pixelStride = csm.getPixelStride();
                            int lineStride = csm.getScanlineStride();

                            if(pixelStride != numBands ||
                               lineStride != bytesPerRow) {
                                useDataBuffer = false;
                            } else {
                                useDataBuffer = true;
                                for(int i = 0;
                                    useDataBuffer && i < numBands;
                                    i++) {
                                    if(bankIndices[i] != 0 ||
                                       bandOffsets[i] != i) {
                                        useDataBuffer = false;
                                    }
                                }
                            }
                        } else { // 1-bit
                            MultiPixelPackedSampleModel mpp =
                                (MultiPixelPackedSampleModel)src.getSampleModel();
                            if(mpp.getNumBands() == 1 &&
                               mpp.getDataBitOffset() == 0 &&
                               mpp.getPixelBitStride() == 1) {
                                useDataBuffer = true;
                            }
                        }
                    }

                    if(!useDataBuffer) {
                        if(dataType == DataBuffer.TYPE_FLOAT) {
                            fpixels = src.getPixels(col, row, tileWidth, rows,
                                                    fpixels);
                        } else {
                            pixels = src.getPixels(col, row, tileWidth, rows,
                                                   pixels);
                        }
                    }
                }

                int index;

                int pixel = 0;;
                int k = 0;
                switch(sampleSize[0]) {

                case 1:

                    if(useDataBuffer) {
                        byte[] btmp =
                            ((DataBufferByte)src.getDataBuffer()).getData();
                        MultiPixelPackedSampleModel mpp =
                            (MultiPixelPackedSampleModel)src.getSampleModel();
                        int lineStride = mpp.getScanlineStride();
                        int inOffset =
                            mpp.getOffset(col -
                                          src.getSampleModelTranslateX(),
                                          row -
                                          src.getSampleModelTranslateY());
                        if(lineStride == (int)bytesPerRow) {
                            System.arraycopy(btmp, inOffset,
                                             bpixels, 0,
                                             (int)bytesPerRow*rows);
                        } else {
                            int outOffset = 0;
                            for(int j = 0; j < rows; j++) {
                                System.arraycopy(btmp, inOffset,
                                                 bpixels, outOffset,
                                                 (int)bytesPerRow);
                                inOffset += lineStride;
                                outOffset += (int)bytesPerRow;
                            }
                        }
                    } else {
                        index = 0;

                        // For each of the rows in a strip
                        for (int i=0; i<rows; i++) {

                            // Write number of pixels exactly divisible by 8
                            for (int j=0; j<tileWidth/8; j++) {
     
                                pixel =
                                    (pixels[index++] << 7) |
                                    (pixels[index++] << 6) |
                                    (pixels[index++] << 5) |
                                    (pixels[index++] << 4) |
                                    (pixels[index++] << 3) |
                                    (pixels[index++] << 2) |
                                    (pixels[index++] << 1) |
                                    pixels[index++];
                                bpixels[k++] = (byte)pixel;
                            }

                            // Write the pixels remaining after division by 8
                            if (tileWidth%8 > 0) {
                                pixel = 0;
                                for (int j=0; j<tileWidth%8; j++) {
                                    pixel |= (pixels[index++] << (7 - j));
                                }
                                bpixels[k++] = (byte)pixel;
                            }
                        }
                    }

                    if(compression == COMP_NONE) {
                        output.write(bpixels, 0, rows * ((tileWidth+7)/8));
                    } else if(compression == COMP_PACKBITS) {
                        int numCompressedBytes =
                            compressPackBits(bpixels, rows,
                                             (int)bytesPerRow,
                                             compressBuf);
                        tileByteCounts[tileNum++] = numCompressedBytes;
                        output.write(compressBuf, 0, numCompressedBytes);
                    } else if(compression == COMP_DEFLATE) {
                        int numCompressedBytes =
                            deflate(deflater, bpixels, compressBuf);
                        tileByteCounts[tileNum++] = numCompressedBytes;
                        output.write(compressBuf, 0, numCompressedBytes);
                    }

                    break;

                case 4:
   
                    index = 0;

                    // For each of the rows in a strip
                    for (int i=0; i<rows; i++) {
       
                        // Write  the number of pixels that will fit into an
                        // even number of nibbles.
                        for (int j=0; j<tileWidth/2; j++) {
                            pixel = (pixels[index++] << 4) | pixels[index++];
                            bpixels[k++] = (byte)pixel;
                        }

                        // Last pixel for odd-length lines
                        if ((tileWidth % 2) == 1) {
                            pixel = pixels[index++] << 4;
                            bpixels[k++] = (byte)pixel;
                        }
                    }

                    if(compression == COMP_NONE) {
                        output.write(bpixels, 0, rows * ((tileWidth+1)/2));
                    } else if(compression == COMP_PACKBITS) {
                        int numCompressedBytes =
                            compressPackBits(bpixels, rows,
                                             (int)bytesPerRow,
                                             compressBuf);
                        tileByteCounts[tileNum++] = numCompressedBytes;
                        output.write(compressBuf, 0, numCompressedBytes);
                    } else if(compression == COMP_DEFLATE) {
                        int numCompressedBytes =
                            deflate(deflater, bpixels, compressBuf);
                        tileByteCounts[tileNum++] = numCompressedBytes;
                        output.write(compressBuf, 0, numCompressedBytes);
                    }
                    break;
                case 8:

                    if(compression != COMP_JPEG_TTN2) {
                        if(useDataBuffer) {
                            byte[] btmp =
                                ((DataBufferByte)src.getDataBuffer()).getData();
                            ComponentSampleModel csm =
                                (ComponentSampleModel)src.getSampleModel();
                            int inOffset =
                                csm.getOffset(col -
                                              src.getSampleModelTranslateX(),
                                              row -
                                              src.getSampleModelTranslateY());
                            int lineStride = csm.getScanlineStride();
                            if(lineStride == (int)bytesPerRow) {
                                System.arraycopy(btmp,
                                                 inOffset,
                                                 bpixels, 0,
                                                 (int)bytesPerRow*rows);
 
View Full Code Here

Examples of java.awt.image.ComponentSampleModel

            } else if (dataClass.isAssignableFrom(Byte.class)) {
                dataType = DataBuffer.TYPE_BYTE;
            }
        }
        if (sampleModel == null) {
            sampleModel = new ComponentSampleModel(dataType, width, height, 1, width, new int[]{0});
        }

        WritableRaster raster = RasterFactory.createWritableRaster(sampleModel, null);
        if (value != null) {
            // autobox only once
View Full Code Here

Examples of java.awt.image.ComponentSampleModel

public class equals implements Testlet
{
  public void test(TestHarness harness)
  {
    ComponentSampleModel m1 = new ComponentSampleModel(DataBuffer.TYPE_INT,
            10, 20, 3, 40, new int[] {0, 1, 2});
    ComponentSampleModel m2 = new ComponentSampleModel(DataBuffer.TYPE_INT,
            10, 20, 3, 40, new int[] {0, 1, 2});
    harness.check(m1.equals(m2));
   
    m1 = new ComponentSampleModel(DataBuffer.TYPE_BYTE,
            10, 20, 3, 40, new int[] {0, 1, 2});
    harness.check(!m1.equals(m2));
    m2 = new ComponentSampleModel(DataBuffer.TYPE_BYTE,
            10, 20, 3, 40, new int[] {0, 1, 2});
    harness.check(m1.equals(m2));
   
    m1 = new ComponentSampleModel(DataBuffer.TYPE_BYTE,
            9, 20, 3, 40, new int[] {0, 1, 2});
    harness.check(!m1.equals(m2));
    m2 = new ComponentSampleModel(DataBuffer.TYPE_BYTE,
            9, 20, 3, 40, new int[] {0, 1, 2});
    harness.check(m1.equals(m2));
   
    m1 = new ComponentSampleModel(DataBuffer.TYPE_BYTE,
            9, 19, 3, 40, new int[] {0, 1, 2});
    harness.check(!m1.equals(m2));
    m2 = new ComponentSampleModel(DataBuffer.TYPE_BYTE,
            9, 19, 3, 40, new int[] {0, 1, 2});
    harness.check(m1.equals(m2));
   
    m1 = new ComponentSampleModel(DataBuffer.TYPE_BYTE,
            9, 19, 4, 40, new int[] {0, 1, 2});
    harness.check(!m1.equals(m2));
    m2 = new ComponentSampleModel(DataBuffer.TYPE_BYTE,
            9, 19, 4, 40, new int[] {0, 1, 2});
    harness.check(m1.equals(m2));

    m1 = new ComponentSampleModel(DataBuffer.TYPE_BYTE,
            9, 19, 4, 40, new int[] {0, 2, 1});
    harness.check(!m1.equals(m2));
    m2 = new ComponentSampleModel(DataBuffer.TYPE_BYTE,
            9, 19, 4, 40, new int[] {0, 2, 1});
    harness.check(m1.equals(m2));
  }
View Full Code Here

Examples of java.awt.image.ComponentSampleModel

 
  private void test1(TestHarness harness)
  {
    harness.checkPoint("(int, int, int, double, DataBuffer)")
    DataBuffer db = new DataBufferDouble(12);
    ComponentSampleModel m = new ComponentSampleModel(DataBuffer.TYPE_DOUBLE,
            3, 2, 2, 6, new int[] {0, 1});
    m.setSample(2, 1, 0, 99.9, db);
    harness.check(db.getElem(0, 10), 99.0d);
    m.setSample(2, 1, 1, 88.8, db);
    harness.check(db.getElem(0, 11), 88.0d);
   
    // what happens if the data buffer doesn't hold doubles?
    DataBuffer db2 = new DataBufferInt(12);
    m.setSample(2, 1, 0, 99.9d, db2);
    harness.check(db2.getElem(0, 10), 99);
    m.setSample(2, 1, 1, 88.8d, db2);
    harness.check(db2.getElem(0, 11), 88);

    // check that a null data buffer generates a NullPointerException
    boolean pass = false;
    try
      {
        m.setSample(2, 1, 1, 77.7d, null);
      }
    catch (NullPointerException e)
      {
        pass = true;
      }
View Full Code Here

Examples of java.awt.image.ComponentSampleModel

  private void test2(TestHarness harness)
  {
    harness.checkPoint("(int, int, int, float, DataBuffer)")

    DataBuffer db = new DataBufferFloat(12);
    ComponentSampleModel m = new ComponentSampleModel(DataBuffer.TYPE_FLOAT,
            3, 2, 2, 6, new int[] {0, 1});
    m.setSample(2, 1, 0, 99.9f, db);
    harness.check(db.getElem(0, 10), 99.0f);
    m.setSample(2, 1, 1, 88.8f, db);
    harness.check(db.getElem(0, 11), 88.0f);
   
    // what happens if the data buffer doesn't hold floats?
    DataBuffer db2 = new DataBufferInt(12);
    m.setSample(2, 1, 0, 99.9f, db2);
    harness.check(db2.getElem(0, 10), 99);
    m.setSample(2, 1, 1, 88.8f, db2);
    harness.check(db2.getElem(0, 11), 88);
    
    // check that a null data buffer generates a NullPointerException
    boolean pass = false;
    try
      {
        m.setSample(2, 1, 1, 77.7f, null);
      }
    catch (NullPointerException e)
      {
        pass = true;
      }
View Full Code Here

Examples of java.awt.image.ComponentSampleModel

  private void test3(TestHarness harness)
  {
    harness.checkPoint("(int, int, int, int, DataBuffer)")
   
    DataBuffer db = new DataBufferInt(12);
    ComponentSampleModel m = new ComponentSampleModel(DataBuffer.TYPE_INT,
            3, 2, 2, 6, new int[] {0, 1});
    m.setSample(2, 1, 0, 99, db);
    harness.check(db.getElem(0, 10), 99);
    m.setSample(2, 1, 1, 88, db);
    harness.check(db.getElem(0, 11), 88);
   
    // what happens if the data buffer doesn't hold integers?
    DataBuffer db2 = new DataBufferByte(12);
    m.setSample(2, 1, 0, 99, db2);
    harness.check(db2.getElem(0, 10), 99);
    m.setSample(2, 1, 1, 888, db2);
    harness.check(db2.getElem(0, 11), 120)// (byte) 888
   
    // check that a null data buffer generates a NullPointerException
    boolean pass = false;
    try
      {
        m.setSample(2, 1, 1, 77, null);
      }
    catch (NullPointerException e)
      {
        pass = true;
      }
View Full Code Here

Examples of java.awt.image.ComponentSampleModel

  public void test(TestHarness harness)
  {
    DataBuffer db = new DataBufferInt(12);
    for (int i = 0; i < 12; i++)
      db.setElem(i, i);
    ComponentSampleModel m = new ComponentSampleModel(DataBuffer.TYPE_INT,
            3, 2, 2, 6, new int[] {0, 1});
    Object elements = m.getDataElements(0, 0, 2, 1, null, db);
    int[] de = (int[]) elements;
    harness.check(de.length, 4);
    harness.check(de[0], 0);
    harness.check(de[1], 1);
    harness.check(de[2], 2);
    harness.check(de[3], 3);
   
    // try passing in a result array
    int[] result = new int[4];
    de = (int[]) m.getDataElements(0, 0, 2, 1, result, db);
    harness.check(de[0], 0);
    harness.check(de[1], 1);
    harness.check(de[2], 2);
    harness.check(de[3], 3);
    harness.check(de == result);
   
    // try null data buffer
    boolean pass = false;
    try
      {
        m.getDataElements(0, 0, 2, 1, result, null);
      }
    catch (NullPointerException e)
      {
        pass = true
      }
View Full Code Here

Examples of java.awt.image.ComponentSampleModel

{
  public void test(TestHarness harness)
  {
    DataBuffer db = new DataBufferInt(12);
    int[] pixel = new int[] {11, 22};
    ComponentSampleModel m = new ComponentSampleModel(DataBuffer.TYPE_INT,
            3, 2, 2, 6, new int[] {0, 1});
    m.setPixel(1, 1, pixel, db);
    harness.check(db.getElem(0, 8), 11);
    harness.check(db.getElem(0, 9), 22);
       
    // check that a null pixel array generates a NullPointerException
    boolean pass = false;
    try
      {
        m.setPixel(1, 1, (int[]) null, db);
      }
    catch (NullPointerException e)
      {
        pass = true;
      }
    harness.check(pass);   

    // check that a null data buffer generates a NullPointerException
    pass = false;
    try
      {
        m.setPixel(1, 1, pixel, null);
      }
    catch (NullPointerException e)
      {
        pass = true;
      }
View Full Code Here

Examples of java.awt.image.ComponentSampleModel

 
  public void testConstructor1(TestHarness harness)
  {
    harness.checkPoint("testConstructor1()");
   
    ComponentSampleModel m = new ComponentSampleModel(DataBuffer.TYPE_BYTE,
            10, 20, 3, 30, new int[] {0, 1, 2});
    harness.check(m.getDataType(), DataBuffer.TYPE_BYTE);
    harness.check(m.getWidth(), 10);
    harness.check(m.getHeight(), 20);
    harness.check(m.getPixelStride(), 3);
    harness.check(m.getScanlineStride(), 30);
    harness.check(Arrays.equals(m.getBandOffsets(), new int[] {0, 1, 2}));
   
    // try bad type
    boolean pass = false;
    try
    {
      m = new ComponentSampleModel(DataBuffer.TYPE_UNDEFINED, 10, 20, 3, 30,
              new int[] {0, 1, 2});
    }
    catch (IllegalArgumentException e)
    {
      pass = true;
    }
    harness.check(pass);
   
    // try zero width
    pass = false;
    try
    {
      m = new ComponentSampleModel(DataBuffer.TYPE_BYTE, 0, 20, 3, 30,
              new int[] {0, 1, 2});
    }
    catch (IllegalArgumentException e)
    {
      pass = true;
    }
    harness.check(pass);

    // try zero height
    pass = false;
    try
    {
      m = new ComponentSampleModel(DataBuffer.TYPE_BYTE, 10, 0, 3, 30,
              new int[] {0, 1, 2});
    }
    catch (IllegalArgumentException e)
    {
      pass = true;
    }
    harness.check(pass);
   
    // try negative pixel stride
    pass = false;
    try
    {
      m = new ComponentSampleModel(DataBuffer.TYPE_BYTE, 10, 20, -1, 30,
              new int[] {0, 1, 2});
    }
    catch (IllegalArgumentException e)
    {
      pass = true;
    }
    harness.check(pass);

    // try negative scanline stride
    pass = false;
    try
    {
      m = new ComponentSampleModel(DataBuffer.TYPE_BYTE, 10, 20, 3, -1,
              new int[] {0, 1, 2});
    }
    catch (IllegalArgumentException e)
    {
      pass = true;
    }
    harness.check(pass);
   
    // try width * height > Integer.MAX_VALUE
    pass = false;
    try
    {
      m = new ComponentSampleModel(DataBuffer.TYPE_BYTE, 3,
              Integer.MAX_VALUE / 2, 3, 30, new int[] {0, 1, 2});
    }
    catch (IllegalArgumentException e)
    {
      pass = true;
    }
    harness.check(pass);
   
    // try null band offsets
    pass = false;
    try
    {
      m = new ComponentSampleModel(DataBuffer.TYPE_BYTE, 10, 20, 3, 30, null);
    }
    catch (NullPointerException e)
    {
      pass = true;
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.