Java 类java.awt.image.PixelInterleavedSampleModel 实例源码

项目:VASSAL-src    文件:MedianCut.java   
BufferedImage makeImage() {
// Generate 8-bit image

    //Image img8;
    byte[] pixels8;
    int color16;

    pixels8 = new byte[width*height];
    for (int i=0; i<width*height; i++) {
        color16 = rgb(pixels32[i]);
        pixels8[i] = (byte)hist[color16];
    }

    SampleModel sampleModel = new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE, width, height, 1, width, new int[] {0});
    DataBufferByte Buffer = new DataBufferByte(pixels8, pixels8.length);
    WritableRaster raster = Raster.createWritableRaster(sampleModel, Buffer, null);

    return new BufferedImage(cm, raster, false, null);
}
项目:DicomViewer    文件:OpenCLWithJOCL.java   
BufferedImage createFloatBufferedImage(int w, int h, int bands) {
    // Define dimensions and layout of the image
    //int bands = 4; // 4 bands for ARGB, 3 for RGB etc
    int[] bandOffsets = {0, 1, 2, 3}; // length == bands, 0 == R, 1 == G, 2 == B and 3 == A

    // Create a TYPE_FLOAT sample model (specifying how the pixels are stored)
    SampleModel sampleModel = new PixelInterleavedSampleModel(DataBuffer.TYPE_FLOAT, w, h, bands, w  * bands, bandOffsets);
    // ...and data buffer (where the pixels are stored)
    DataBuffer buffer = new DataBufferFloat(w * h * bands);

    // Wrap it in a writable raster
    WritableRaster raster = Raster.createWritableRaster(sampleModel, buffer, null);

    // Create a color model compatible with this sample model/raster (TYPE_FLOAT)
    // Note that the number of bands must equal the number of color components in the 
    // color space (3 for RGB) + 1 extra band if the color model contains alpha 
    ColorSpace colorSpace = ColorSpace.getInstance(ColorSpace.CS_sRGB);
    ColorModel colorModel = new ComponentColorModel(colorSpace, true, false, Transparency.TRANSLUCENT, DataBuffer.TYPE_FLOAT);

    // And finally create an image with this raster
    return new BufferedImage(colorModel, raster, colorModel.isAlphaPremultiplied(), null);
}
项目:openjdk-jdk10    文件:RasterOpNullDestinationRasterTest.java   
public static void main(String[] args) {

        byte[][] data = new byte[1][10];
        ByteLookupTable lut = new ByteLookupTable(0, data);
        RasterOp op = new LookupOp(lut, null);

        int[] bandOffsets = {0};
        Point location = new Point(0, 0);
        DataBuffer db = new DataBufferByte(10 * 10);
        SampleModel sm = new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE,
                                                         10, 10, 1, 10,
                                                         bandOffsets);

        Raster src = Raster.createRaster(sm, db, location);

        op.filter(src, null); // this used to result in NullPointerException
    }
项目:Push2Display    文件:FilterAsAlphaRed.java   
/**
 * Construct an alpah channel from the given src, according to
 * the SVG masking rules.
 *
 * @param src The image to convert to an alpha channel (mask image)
 */
public FilterAsAlphaRed(CachableRed src) {
    super(new Any2LumRed(src),src.getBounds(), 
          new ComponentColorModel
              (ColorSpace.getInstance(ColorSpace.CS_GRAY),
               new int [] {8}, false, false,
               Transparency.OPAQUE, 
               DataBuffer.TYPE_BYTE),
          new PixelInterleavedSampleModel
              (DataBuffer.TYPE_BYTE, 
               src.getSampleModel().getWidth(),
               src.getSampleModel().getHeight(),
               1, src.getSampleModel().getWidth(),
               new int [] { 0 }),
          src.getTileGridXOffset(),
          src.getTileGridYOffset(),
          null);

    props.put(ColorSpaceHintKey.PROPERTY_COLORSPACE,
              ColorSpaceHintKey.VALUE_COLORSPACE_ALPHA);
}
项目:Push2Display    文件:MultiplyAlphaRed.java   
public static SampleModel fixSampleModel(CachableRed src) {
    ColorModel  cm = src.getColorModel();
    SampleModel srcSM = src.getSampleModel();

    if (cm.hasAlpha())
        return srcSM;

    int w = srcSM.getWidth();
    int h = srcSM.getHeight();
    int b = srcSM.getNumBands()+1;
    int [] offsets = new int[b];
    for (int i=0; i < b; i++)
        offsets[i] = i;

    // Really should check DataType range in srcSM...
    return new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE,
                                           w, h, b, w*b, offsets);
}
项目:Push2Display    文件:FilterAsAlphaRed.java   
/**
 * Construct an alpah channel from the given src, according to
 * the SVG masking rules.
 *
 * @param src The image to convert to an alpha channel (mask image)
 */
public FilterAsAlphaRed(CachableRed src) {
    super(new Any2LumRed(src),src.getBounds(), 
          new ComponentColorModel
              (ColorSpace.getInstance(ColorSpace.CS_GRAY),
               new int [] {8}, false, false,
               Transparency.OPAQUE, 
               DataBuffer.TYPE_BYTE),
          new PixelInterleavedSampleModel
              (DataBuffer.TYPE_BYTE, 
               src.getSampleModel().getWidth(),
               src.getSampleModel().getHeight(),
               1, src.getSampleModel().getWidth(),
               new int [] { 0 }),
          src.getTileGridXOffset(),
          src.getTileGridYOffset(),
          null);

    props.put(ColorSpaceHintKey.PROPERTY_COLORSPACE,
              ColorSpaceHintKey.VALUE_COLORSPACE_ALPHA);
}
项目:Push2Display    文件:MultiplyAlphaRed.java   
public static SampleModel fixSampleModel(CachableRed src) {
    ColorModel  cm = src.getColorModel();
    SampleModel srcSM = src.getSampleModel();

    if (cm.hasAlpha())
        return srcSM;

    int w = srcSM.getWidth();
    int h = srcSM.getHeight();
    int b = srcSM.getNumBands()+1;
    int [] offsets = new int[b];
    for (int i=0; i < b; i++)
        offsets[i] = i;

    // Really should check DataType range in srcSM...
    return new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE,
                                           w, h, b, w*b, offsets);
}
项目:vassal    文件:MedianCut.java   
BufferedImage makeImage() {
// Generate 8-bit image

    //Image img8;
    byte[] pixels8;
    int color16;

    pixels8 = new byte[width*height];
    for (int i=0; i<width*height; i++) {
        color16 = rgb(pixels32[i]);
        pixels8[i] = (byte)hist[color16];
    }

    SampleModel sampleModel = new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE, width, height, 1, width, new int[] {0});
    DataBufferByte Buffer = new DataBufferByte(pixels8, pixels8.length);
    WritableRaster raster = Raster.createWritableRaster(sampleModel, Buffer, null);

    return new BufferedImage(cm, raster, false, null);
}
项目:feathers-sdk    文件:FilterAsAlphaRed.java   
/**
 * Construct an alpah channel from the given src, according to
 * the SVG masking rules.
 *
 * @param src The image to convert to an alpha channel (mask image)
 */
public FilterAsAlphaRed(CachableRed src) {
    super(new Any2LumRed(src),src.getBounds(), 
          new ComponentColorModel
              (ColorSpace.getInstance(ColorSpace.CS_GRAY),
               new int [] {8}, false, false,
               Transparency.OPAQUE, 
               DataBuffer.TYPE_BYTE),
          new PixelInterleavedSampleModel
              (DataBuffer.TYPE_BYTE, 
               src.getSampleModel().getWidth(),
               src.getSampleModel().getHeight(),
               1, src.getSampleModel().getWidth(),
               new int [] { 0 }),
          src.getTileGridXOffset(),
          src.getTileGridYOffset(),
          null);

    props.put(ColorSpaceHintKey.PROPERTY_COLORSPACE,
              ColorSpaceHintKey.VALUE_COLORSPACE_ALPHA);
}
项目:feathers-sdk    文件:MultiplyAlphaRed.java   
public static SampleModel fixSampleModel(CachableRed src) {
    ColorModel  cm = src.getColorModel();
    SampleModel srcSM = src.getSampleModel();

    if (cm.hasAlpha())
        return srcSM;

    int w = srcSM.getWidth();
    int h = srcSM.getHeight();
    int b = srcSM.getNumBands()+1;
    int [] offsets = new int[b];
    for (int i=0; i < b; i++)
        offsets[i] = i;

    // Really should check DataType range in srcSM...
    return new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE,
                                           w, h, b, w*b, offsets);
}
项目:s2tbx    文件:S2ResamplerUtils.java   
public static PlanarImage createFloatPlanarImage(float[] src, int width, int height){
    int[] bandOffsets = {0};

    SampleModel sampleModel = new PixelInterleavedSampleModel(TYPE_FLOAT, width, height, 1, width, bandOffsets);
    ColorSpace colorSpace = ColorSpace.getInstance(ColorSpace.CS_GRAY);
    ColorModel colorModel = new ComponentColorModel(colorSpace, false, false, Transparency.TRANSLUCENT, TYPE_FLOAT);
    PlanarImage opImage;
    DataBuffer buffer = new DataBufferFloat(width * height);

    // Wrap it in a writable raster
    WritableRaster raster = Raster.createWritableRaster(sampleModel, buffer, null);
    raster.setPixels(0, 0, width, height, src);

    // Create an image with this raster
    BufferedImage image = new BufferedImage(colorModel, raster, colorModel.isAlphaPremultiplied(), null);
    opImage = PlanarImage.wrapRenderedImage(image);
    return opImage;
}
项目:viskit    文件:RawDicomImageReader.java   
private SampleModel createSampleModel() {
    if (samples == 1) {
        return new PixelInterleavedSampleModel(dataType, width, height, 1,
                width, OFFSETS_0);
    }

    // samples == 3
    if (banded) {
        return new BandedSampleModel(dataType, width, height, width,
                OFFSETS_0_1_2, OFFSETS_0_0_0);
    }

    if( (!compressed) && pmi.endsWith("422" ) ) {
        return new PartialComponentSampleModel(width, height, 2, 1);
    }

    if( (!compressed) && pmi.endsWith("420") ) {
        return new PartialComponentSampleModel(width,height,2,2);
    }

    return new PixelInterleavedSampleModel(dataType, width, height, 3,
            width * 3, OFFSETS_0_1_2);
}
项目:incubator-netbeans    文件:ImageBuilder.java   
@Override
public SampleModel convert(FieldAccessor fa, Instance instance) throws FieldAccessor.InvalidFieldException {
    int width = fa.getInt(instance, "width");          // NOI18N
    int height = fa.getInt(instance, "height");  // NOI18N
    int dataType = fa.getInt(instance, "dataType");   // NOI18N
    int pixelStride = fa.getInt(instance, "pixelStride");  // NOI18N
    int scanlineStride = fa.getInt(instance, "scanlineStride");  // NOI18N
    int[] bandOffsets = fa.getIntArray(instance, "bandOffsets", false);  // NOI18N
    return new PixelInterleavedSampleModel(dataType, width, height, pixelStride, scanlineStride, bandOffsets);
}
项目:jdk8u-jdk    文件:GetSamplesTest.java   
public static void main(String[] args) {
    Vector<Class<? extends SampleModel>> classes = new Vector<Class<? extends SampleModel>>();

    classes.add(ComponentSampleModel.class);
    classes.add(MultiPixelPackedSampleModel.class);
    classes.add(SinglePixelPackedSampleModel.class);
    classes.add(BandedSampleModel.class);
    classes.add(PixelInterleavedSampleModel.class);

    for (Class<? extends SampleModel> c : classes) {
        doTest(c);
    }
}
项目:jdk8u-jdk    文件:ColCvtAlpha.java   
public static void main(String args[]) {
    BufferedImage src
        = new BufferedImage(1, 10, BufferedImage.TYPE_INT_ARGB);

    // Set src pixel values
    Color pelColor = new Color(100, 100, 100, 128);
    for (int i = 0; i < 10; i++) {
        src.setRGB(0, i, pelColor.getRGB());
    }

    ColorModel cm = new ComponentColorModel
        (ColorSpace.getInstance(ColorSpace.CS_GRAY),
         new int [] {8,8}, true,
         src.getColorModel().isAlphaPremultiplied(),
         Transparency.TRANSLUCENT,
         DataBuffer.TYPE_BYTE);

    SampleModel sm = new PixelInterleavedSampleModel
        (DataBuffer.TYPE_BYTE, 100, 100, 2, 200,
         new int [] { 0, 1 });

    WritableRaster wr = Raster.createWritableRaster(sm, new Point(0,0));

    BufferedImage dst =
        new BufferedImage(cm, wr, cm.isAlphaPremultiplied(), null);
    dst = dst.getSubimage(0, 0, 1, 10);

    ColorConvertOp op = new ColorConvertOp(null);

    op.filter(src, dst);

    for (int i = 0; i < 10; i++) {
        if (((dst.getRGB(0, i) >> 24) & 0xff) != 128) {
            throw new RuntimeException(
                "Incorrect destination alpha value.");
        }
    }

}
项目:openjdk-jdk10    文件:TIFFDecompressor.java   
/**
 * Create a {@code PixelInterleavedSampleModel} for use in creating
 * an {@code ImageTypeSpecifier}.  Its dimensions will be 1x1 and
 * it will have ascending band offsets as {0, 1, 2, ..., numBands}.
 *
 * @param dataType The data type (DataBuffer.TYPE_*).
 * @param numBands The number of bands.
 * @return A {@code PixelInterleavedSampleModel}.
 */
static SampleModel createInterleavedSM(int dataType,
                                       int numBands) {
    int[] bandOffsets = new int[numBands];
    for(int i = 0; i < numBands; i++) {
        bandOffsets[i] = i;
    }
    return new PixelInterleavedSampleModel(dataType,
                                           1, // width
                                           1, // height
                                           numBands, // pixelStride,
                                           numBands, // scanlineStride
                                           bandOffsets);
}
项目:openjdk-jdk10    文件:GetSamplesTest.java   
public static void main(String[] args) {
    Vector<Class<? extends SampleModel>> classes = new Vector<Class<? extends SampleModel>>();

    classes.add(ComponentSampleModel.class);
    classes.add(MultiPixelPackedSampleModel.class);
    classes.add(SinglePixelPackedSampleModel.class);
    classes.add(BandedSampleModel.class);
    classes.add(PixelInterleavedSampleModel.class);

    for (Class<? extends SampleModel> c : classes) {
        doTest(c);
    }
}
项目:openjdk-jdk10    文件:ColCvtAlpha.java   
public static void main(String args[]) {
    BufferedImage src
        = new BufferedImage(1, 10, BufferedImage.TYPE_INT_ARGB);

    // Set src pixel values
    Color pelColor = new Color(100, 100, 100, 128);
    for (int i = 0; i < 10; i++) {
        src.setRGB(0, i, pelColor.getRGB());
    }

    ColorModel cm = new ComponentColorModel
        (ColorSpace.getInstance(ColorSpace.CS_GRAY),
         new int [] {8,8}, true,
         src.getColorModel().isAlphaPremultiplied(),
         Transparency.TRANSLUCENT,
         DataBuffer.TYPE_BYTE);

    SampleModel sm = new PixelInterleavedSampleModel
        (DataBuffer.TYPE_BYTE, 100, 100, 2, 200,
         new int [] { 0, 1 });

    WritableRaster wr = Raster.createWritableRaster(sm, new Point(0,0));

    BufferedImage dst =
        new BufferedImage(cm, wr, cm.isAlphaPremultiplied(), null);
    dst = dst.getSubimage(0, 0, 1, 10);

    ColorConvertOp op = new ColorConvertOp(null);

    op.filter(src, dst);

    for (int i = 0; i < 10; i++) {
        if (((dst.getRGB(0, i) >> 24) & 0xff) != 128) {
            throw new RuntimeException(
                "Incorrect destination alpha value.");
        }
    }

}
项目:openjdk9    文件:TIFFDecompressor.java   
/**
 * Create a {@code PixelInterleavedSampleModel} for use in creating
 * an {@code ImageTypeSpecifier}.  Its dimensions will be 1x1 and
 * it will have ascending band offsets as {0, 1, 2, ..., numBands}.
 *
 * @param dataType The data type (DataBuffer.TYPE_*).
 * @param numBands The number of bands.
 * @return A {@code PixelInterleavedSampleModel}.
 */
static SampleModel createInterleavedSM(int dataType,
                                       int numBands) {
    int[] bandOffsets = new int[numBands];
    for(int i = 0; i < numBands; i++) {
        bandOffsets[i] = i;
    }
    return new PixelInterleavedSampleModel(dataType,
                                           1, // width
                                           1, // height
                                           numBands, // pixelStride,
                                           numBands, // scanlineStride
                                           bandOffsets);
}
项目:openjdk9    文件:GetSamplesTest.java   
public static void main(String[] args) {
    Vector<Class<? extends SampleModel>> classes = new Vector<Class<? extends SampleModel>>();

    classes.add(ComponentSampleModel.class);
    classes.add(MultiPixelPackedSampleModel.class);
    classes.add(SinglePixelPackedSampleModel.class);
    classes.add(BandedSampleModel.class);
    classes.add(PixelInterleavedSampleModel.class);

    for (Class<? extends SampleModel> c : classes) {
        doTest(c);
    }
}
项目:openjdk9    文件:ColCvtAlpha.java   
public static void main(String args[]) {
    BufferedImage src
        = new BufferedImage(1, 10, BufferedImage.TYPE_INT_ARGB);

    // Set src pixel values
    Color pelColor = new Color(100, 100, 100, 128);
    for (int i = 0; i < 10; i++) {
        src.setRGB(0, i, pelColor.getRGB());
    }

    ColorModel cm = new ComponentColorModel
        (ColorSpace.getInstance(ColorSpace.CS_GRAY),
         new int [] {8,8}, true,
         src.getColorModel().isAlphaPremultiplied(),
         Transparency.TRANSLUCENT,
         DataBuffer.TYPE_BYTE);

    SampleModel sm = new PixelInterleavedSampleModel
        (DataBuffer.TYPE_BYTE, 100, 100, 2, 200,
         new int [] { 0, 1 });

    WritableRaster wr = Raster.createWritableRaster(sm, new Point(0,0));

    BufferedImage dst =
        new BufferedImage(cm, wr, cm.isAlphaPremultiplied(), null);
    dst = dst.getSubimage(0, 0, 1, 10);

    ColorConvertOp op = new ColorConvertOp(null);

    op.filter(src, dst);

    for (int i = 0; i < 10; i++) {
        if (((dst.getRGB(0, i) >> 24) & 0xff) != 128) {
            throw new RuntimeException(
                "Incorrect destination alpha value.");
        }
    }

}
项目:Push2Display    文件:TIFFImage.java   
private static SampleModel createPixelInterleavedSampleModel
    (int dataType, int tileWidth, int tileHeight, int bands) {
    int [] bandOffsets = new int[bands];
    for (int i=0; i<bands; i++)
        bandOffsets[i] = i;
    return new PixelInterleavedSampleModel
        (dataType, tileWidth, tileHeight, bands,
         tileWidth*bands, bandOffsets);
}
项目:Push2Display    文件:Any2LumRed.java   
/**
 * This function 'fixes' the source's sample model.
 * Right now it just selects if it should have one or two bands
 * based on if the source had an alpha channel.
 */
protected static SampleModel fixSampleModel(CachableRed src) {
    SampleModel sm = src.getSampleModel();

    int width  = sm.getWidth();
    int height = sm.getHeight();

    ColorModel  cm = src.getColorModel();
    if (cm != null) {
        if (cm.hasAlpha()) 
            return new PixelInterleavedSampleModel
                (DataBuffer.TYPE_BYTE, width, height, 2, 2*width,
                 new int [] { 0, 1 });

        return new PixelInterleavedSampleModel
            (DataBuffer.TYPE_BYTE, width, height, 1, width,
             new int [] { 0 });
    }
    else {
        // No ColorModel so try to make some intelligent
        // decisions based just on the number of bands...
        // 1 bands -> lum
        // 2 bands -> lum (Band 0) & alpha (Band 1)
        // >2 bands -> lum (Band 0) - No color conversion...
        if (sm.getNumBands() == 2)
            return new PixelInterleavedSampleModel
                (DataBuffer.TYPE_BYTE, width, height, 2, 2*width,
                 new int [] { 0, 1 });

        return new PixelInterleavedSampleModel
            (DataBuffer.TYPE_BYTE, width, height, 1, width,
             new int [] { 0 });
    }
}
项目:jdk8u_jdk    文件:GetSamplesTest.java   
public static void main(String[] args) {
    Vector<Class<? extends SampleModel>> classes = new Vector<Class<? extends SampleModel>>();

    classes.add(ComponentSampleModel.class);
    classes.add(MultiPixelPackedSampleModel.class);
    classes.add(SinglePixelPackedSampleModel.class);
    classes.add(BandedSampleModel.class);
    classes.add(PixelInterleavedSampleModel.class);

    for (Class<? extends SampleModel> c : classes) {
        doTest(c);
    }
}
项目:jdk8u_jdk    文件:ColCvtAlpha.java   
public static void main(String args[]) {
    BufferedImage src
        = new BufferedImage(1, 10, BufferedImage.TYPE_INT_ARGB);

    // Set src pixel values
    Color pelColor = new Color(100, 100, 100, 128);
    for (int i = 0; i < 10; i++) {
        src.setRGB(0, i, pelColor.getRGB());
    }

    ColorModel cm = new ComponentColorModel
        (ColorSpace.getInstance(ColorSpace.CS_GRAY),
         new int [] {8,8}, true,
         src.getColorModel().isAlphaPremultiplied(),
         Transparency.TRANSLUCENT,
         DataBuffer.TYPE_BYTE);

    SampleModel sm = new PixelInterleavedSampleModel
        (DataBuffer.TYPE_BYTE, 100, 100, 2, 200,
         new int [] { 0, 1 });

    WritableRaster wr = Raster.createWritableRaster(sm, new Point(0,0));

    BufferedImage dst =
        new BufferedImage(cm, wr, cm.isAlphaPremultiplied(), null);
    dst = dst.getSubimage(0, 0, 1, 10);

    ColorConvertOp op = new ColorConvertOp(null);

    op.filter(src, dst);

    for (int i = 0; i < 10; i++) {
        if (((dst.getRGB(0, i) >> 24) & 0xff) != 128) {
            throw new RuntimeException(
                "Incorrect destination alpha value.");
        }
    }

}
项目:jdk8u_jdk    文件:BMPCompressionTest.java   
private static BufferedImage createTestImage2(int nbits, int transfertype) {
    final int colorShift = 2;
    int SIZE = 256;
    BufferedImage image = null;

    ColorSpace colorSpace =
        ColorSpace.getInstance(ColorSpace.CS_GRAY);
    ColorModel colorModel =
        new ComponentColorModel(colorSpace,
                                new int[] {nbits},
                                false,
                                false,
                                Transparency.OPAQUE,
                                transfertype);

    SampleModel sampleModel =
        new PixelInterleavedSampleModel(transfertype,
                                        SIZE,
                                        SIZE,
                                        1,
                                        SIZE,
                                        new int[] {0});

    image =
        new BufferedImage(colorModel,
                          Raster.createWritableRaster(sampleModel, null),
                          false, null);
    WritableRaster raster = image.getWritableTile(0, 0);
    int[] samples = raster.getSamples(0, 0, SIZE, SIZE, 0, (int[])null);
    int off = 0;
    int[] row = new int[SIZE];
    for(int i = 0; i < SIZE; i++) {
        Arrays.fill(row, i << colorShift);
        System.arraycopy(row, 0, samples, off, SIZE);
        off += SIZE;
    }
    raster.setSamples(0, 0, SIZE, SIZE, 0, samples);

    return image;
}
项目:jdk8u_jdk    文件:BMPCompressionTest.java   
private static BufferedImage createTestImage3(int nbits, int transfertype) {
    final int colorShift = 2;
    int SIZE = 256;
    BufferedImage image = null;

    ColorSpace colorSpace =
        ColorSpace.getInstance(ColorSpace.CS_sRGB);
    ColorModel colorModel =
        new IndexColorModel(nbits,
                            4,
                            new byte[] { (byte)255,   0,   0, (byte)255},
                            new byte[] {   0, (byte)255,   0, (byte)255},
                            new byte[] {   0,   0, (byte)255, (byte)255});

    SampleModel sampleModel =
        new PixelInterleavedSampleModel(transfertype,
                                        SIZE,
                                        SIZE,
                                        1,
                                        SIZE,
                                        new int[] {0});

    image =
        new BufferedImage(colorModel,
                          Raster.createWritableRaster(sampleModel, null),

                          false, null);

    Graphics2D g = image.createGraphics();
    g.setColor(Color.white);
    g.fillRect(0,0, SIZE, SIZE);
    g.setColor(Color.red);
    g.fillOval(10, 10, SIZE -20, SIZE-20);

    return image;
}
项目:lookaside_java-1.8.0-openjdk    文件:GetSamplesTest.java   
public static void main(String[] args) {
    Vector<Class<? extends SampleModel>> classes = new Vector<Class<? extends SampleModel>>();

    classes.add(ComponentSampleModel.class);
    classes.add(MultiPixelPackedSampleModel.class);
    classes.add(SinglePixelPackedSampleModel.class);
    classes.add(BandedSampleModel.class);
    classes.add(PixelInterleavedSampleModel.class);

    for (Class<? extends SampleModel> c : classes) {
        doTest(c);
    }
}
项目:lookaside_java-1.8.0-openjdk    文件:ColCvtAlpha.java   
public static void main(String args[]) {
    BufferedImage src
        = new BufferedImage(1, 10, BufferedImage.TYPE_INT_ARGB);

    // Set src pixel values
    Color pelColor = new Color(100, 100, 100, 128);
    for (int i = 0; i < 10; i++) {
        src.setRGB(0, i, pelColor.getRGB());
    }

    ColorModel cm = new ComponentColorModel
        (ColorSpace.getInstance(ColorSpace.CS_GRAY),
         new int [] {8,8}, true,
         src.getColorModel().isAlphaPremultiplied(),
         Transparency.TRANSLUCENT,
         DataBuffer.TYPE_BYTE);

    SampleModel sm = new PixelInterleavedSampleModel
        (DataBuffer.TYPE_BYTE, 100, 100, 2, 200,
         new int [] { 0, 1 });

    WritableRaster wr = Raster.createWritableRaster(sm, new Point(0,0));

    BufferedImage dst =
        new BufferedImage(cm, wr, cm.isAlphaPremultiplied(), null);
    dst = dst.getSubimage(0, 0, 1, 10);

    ColorConvertOp op = new ColorConvertOp(null);

    op.filter(src, dst);

    for (int i = 0; i < 10; i++) {
        if (((dst.getRGB(0, i) >> 24) & 0xff) != 128) {
            throw new RuntimeException(
                "Incorrect destination alpha value.");
        }
    }

}
项目:VFXWebKit    文件:DirectBufferedImage.java   
private static SampleModel createSampleModel( int width, int height, int bytesPerPixel, int[] bandOffsets )
{
    PixelInterleavedSampleModel csm =
        new PixelInterleavedSampleModel( DataBuffer.TYPE_BYTE,
                                         width, height,
                                         bytesPerPixel,
                                         width * bytesPerPixel,
                                         bandOffsets
                                       );

    return ( csm );
}
项目:SMVHunter    文件:ImageUtils.java   
private static BufferedImage rawImage32toARGB(RawImage rawImage) {
    // Do as much as we can to not make an extra copy of the data.  This is just a bunch of
    // classes that wrap's the raw byte array of the image data.
    DataBufferByte dataBuffer = new DataBufferByte(rawImage.data, rawImage.size);

    PixelInterleavedSampleModel sampleModel =
        new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE, rawImage.width, rawImage.height,
                4, rawImage.width * 4, BAND_OFFSETS_32);
    WritableRaster raster = Raster.createWritableRaster(sampleModel, dataBuffer,
            new Point(0, 0));
    return new BufferedImage(new ThirtyTwoBitColorModel(rawImage), raster, false, EMPTY_HASH);
}
项目:SMVHunter    文件:ImageUtils.java   
private static BufferedImage rawImage16toARGB(BufferedImage image, RawImage rawImage) {
    // Do as much as we can to not make an extra copy of the data.  This is just a bunch of
    // classes that wrap's the raw byte array of the image data.
    DataBufferByte dataBuffer = new DataBufferByte(rawImage.data, rawImage.size);

    PixelInterleavedSampleModel sampleModel =
        new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE, rawImage.width, rawImage.height,
                2, rawImage.width * 2, BAND_OFFSETS_16);
    WritableRaster raster = Raster.createWritableRaster(sampleModel, dataBuffer,
            new Point(0, 0));
    return new BufferedImage(new SixteenBitColorModel(rawImage), raster, false, EMPTY_HASH);
}
项目:Push2Display    文件:TIFFImage.java   
private static SampleModel createPixelInterleavedSampleModel
    (int dataType, int tileWidth, int tileHeight, int bands) {
    int [] bandOffsets = new int[bands];
    for (int i=0; i<bands; i++)
        bandOffsets[i] = i;
    return new PixelInterleavedSampleModel
        (dataType, tileWidth, tileHeight, bands,
         tileWidth*bands, bandOffsets);
}
项目:Push2Display    文件:Any2LumRed.java   
/**
 * This function 'fixes' the source's sample model.
 * Right now it just selects if it should have one or two bands
 * based on if the source had an alpha channel.
 */
protected static SampleModel fixSampleModel(CachableRed src) {
    SampleModel sm = src.getSampleModel();

    int width  = sm.getWidth();
    int height = sm.getHeight();

    ColorModel  cm = src.getColorModel();
    if (cm != null) {
        if (cm.hasAlpha()) 
            return new PixelInterleavedSampleModel
                (DataBuffer.TYPE_BYTE, width, height, 2, 2*width,
                 new int [] { 0, 1 });

        return new PixelInterleavedSampleModel
            (DataBuffer.TYPE_BYTE, width, height, 1, width,
             new int [] { 0 });
    }
    else {
        // No ColorModel so try to make some intelligent
        // decisions based just on the number of bands...
        // 1 bands -> lum
        // 2 bands -> lum (Band 0) & alpha (Band 1)
        // >2 bands -> lum (Band 0) - No color conversion...
        if (sm.getNumBands() == 2)
            return new PixelInterleavedSampleModel
                (DataBuffer.TYPE_BYTE, width, height, 2, 2*width,
                 new int [] { 0, 1 });

        return new PixelInterleavedSampleModel
            (DataBuffer.TYPE_BYTE, width, height, 1, width,
             new int [] { 0 });
    }
}
项目:infobip-open-jdk-8    文件:GetSamplesTest.java   
public static void main(String[] args) {
    Vector<Class<? extends SampleModel>> classes = new Vector<Class<? extends SampleModel>>();

    classes.add(ComponentSampleModel.class);
    classes.add(MultiPixelPackedSampleModel.class);
    classes.add(SinglePixelPackedSampleModel.class);
    classes.add(BandedSampleModel.class);
    classes.add(PixelInterleavedSampleModel.class);

    for (Class<? extends SampleModel> c : classes) {
        doTest(c);
    }
}
项目:infobip-open-jdk-8    文件:ColCvtAlpha.java   
public static void main(String args[]) {
    BufferedImage src
        = new BufferedImage(1, 10, BufferedImage.TYPE_INT_ARGB);

    // Set src pixel values
    Color pelColor = new Color(100, 100, 100, 128);
    for (int i = 0; i < 10; i++) {
        src.setRGB(0, i, pelColor.getRGB());
    }

    ColorModel cm = new ComponentColorModel
        (ColorSpace.getInstance(ColorSpace.CS_GRAY),
         new int [] {8,8}, true,
         src.getColorModel().isAlphaPremultiplied(),
         Transparency.TRANSLUCENT,
         DataBuffer.TYPE_BYTE);

    SampleModel sm = new PixelInterleavedSampleModel
        (DataBuffer.TYPE_BYTE, 100, 100, 2, 200,
         new int [] { 0, 1 });

    WritableRaster wr = Raster.createWritableRaster(sm, new Point(0,0));

    BufferedImage dst =
        new BufferedImage(cm, wr, cm.isAlphaPremultiplied(), null);
    dst = dst.getSubimage(0, 0, 1, 10);

    ColorConvertOp op = new ColorConvertOp(null);

    op.filter(src, dst);

    for (int i = 0; i < 10; i++) {
        if (((dst.getRGB(0, i) >> 24) & 0xff) != 128) {
            throw new RuntimeException(
                "Incorrect destination alpha value.");
        }
    }

}
项目:jdk8u-dev-jdk    文件:GetSamplesTest.java   
public static void main(String[] args) {
    Vector<Class<? extends SampleModel>> classes = new Vector<Class<? extends SampleModel>>();

    classes.add(ComponentSampleModel.class);
    classes.add(MultiPixelPackedSampleModel.class);
    classes.add(SinglePixelPackedSampleModel.class);
    classes.add(BandedSampleModel.class);
    classes.add(PixelInterleavedSampleModel.class);

    for (Class<? extends SampleModel> c : classes) {
        doTest(c);
    }
}
项目:jdk8u-dev-jdk    文件:ColCvtAlpha.java   
public static void main(String args[]) {
    BufferedImage src
        = new BufferedImage(1, 10, BufferedImage.TYPE_INT_ARGB);

    // Set src pixel values
    Color pelColor = new Color(100, 100, 100, 128);
    for (int i = 0; i < 10; i++) {
        src.setRGB(0, i, pelColor.getRGB());
    }

    ColorModel cm = new ComponentColorModel
        (ColorSpace.getInstance(ColorSpace.CS_GRAY),
         new int [] {8,8}, true,
         src.getColorModel().isAlphaPremultiplied(),
         Transparency.TRANSLUCENT,
         DataBuffer.TYPE_BYTE);

    SampleModel sm = new PixelInterleavedSampleModel
        (DataBuffer.TYPE_BYTE, 100, 100, 2, 200,
         new int [] { 0, 1 });

    WritableRaster wr = Raster.createWritableRaster(sm, new Point(0,0));

    BufferedImage dst =
        new BufferedImage(cm, wr, cm.isAlphaPremultiplied(), null);
    dst = dst.getSubimage(0, 0, 1, 10);

    ColorConvertOp op = new ColorConvertOp(null);

    op.filter(src, dst);

    for (int i = 0; i < 10; i++) {
        if (((dst.getRGB(0, i) >> 24) & 0xff) != 128) {
            throw new RuntimeException(
                "Incorrect destination alpha value.");
        }
    }

}
项目:NyARToolkit    文件:JpegIO.java   
public static DecodeResult decode(byte[] i_src) throws IOException
{
    JPEGImageReader jr=(JPEGImageReader)ImageIO.getImageReadersBySuffix("jpeg").next();
    jr.setInput(new MemoryCacheImageInputStream(new ByteArrayInputStream(i_src)));
    IIOMetadata data = jr.getImageMetadata(0);
    Element tree = (Element)data.getAsTree("javax_imageio_jpeg_image_1.0");
    Element jfif = (Element)tree.getElementsByTagName("app0JFIF").item(0);
    int xd=Integer.parseInt(jfif.getAttribute("Xdensity"));
    int yd=Integer.parseInt(jfif.getAttribute("Ydensity"));
    int unit=Integer.parseInt(jfif.getAttribute("resUnits"));
    BufferedImage b=jr.read(0);
    jr.dispose();//dispose

    //カラーモデルの分析
    SampleModel sp=b.getSampleModel();
    if(sp instanceof PixelInterleavedSampleModel){
        PixelInterleavedSampleModel ssp=(PixelInterleavedSampleModel)sp;
        int data_type=ssp.getDataType();
        int scan_stride=ssp.getScanlineStride();
        if(data_type==DataBuffer.TYPE_BYTE && scan_stride==b.getWidth()){
            DataBufferByte bb=(DataBufferByte)b.getData().getDataBuffer();
            return new DecodeResult(xd,yd,bb.getData(),b.getWidth(),b.getHeight(),unit);
        }else{
            //nothing todo
        }
    }else{
        //nothing todo
    }
    throw new NyARRuntimeException();
}
项目:feathers-sdk    文件:TIFFImage.java   
private static SampleModel createPixelInterleavedSampleModel
    (int dataType, int tileWidth, int tileHeight, int bands) {
    int [] bandOffsets = new int[bands];
    for (int i=0; i<bands; i++)
        bandOffsets[i] = i;
    return new PixelInterleavedSampleModel
        (dataType, tileWidth, tileHeight, bands,
         tileWidth*bands, bandOffsets);
}