Search in sources :

Example 1 with IntegerInterleavedRaster

use of sun.awt.image.IntegerInterleavedRaster in project jdk8u_jdk by JetBrains.

the class TexturePaintContext method getContext.

public static PaintContext getContext(BufferedImage bufImg, AffineTransform xform, RenderingHints hints, Rectangle devBounds) {
    WritableRaster raster = bufImg.getRaster();
    ColorModel cm = bufImg.getColorModel();
    int maxw = devBounds.width;
    Object val = hints.get(RenderingHints.KEY_INTERPOLATION);
    boolean filter = (val == null ? (hints.get(RenderingHints.KEY_RENDERING) == RenderingHints.VALUE_RENDER_QUALITY) : (val != RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR));
    if (raster instanceof IntegerInterleavedRaster && (!filter || isFilterableDCM(cm))) {
        IntegerInterleavedRaster iir = (IntegerInterleavedRaster) raster;
        if (iir.getNumDataElements() == 1 && iir.getPixelStride() == 1) {
            return new Int(iir, cm, xform, maxw, filter);
        }
    } else if (raster instanceof ByteInterleavedRaster) {
        ByteInterleavedRaster bir = (ByteInterleavedRaster) raster;
        if (bir.getNumDataElements() == 1 && bir.getPixelStride() == 1) {
            if (filter) {
                if (isFilterableICM(cm)) {
                    return new ByteFilter(bir, cm, xform, maxw);
                }
            } else {
                return new Byte(bir, cm, xform, maxw);
            }
        }
    }
    return new Any(raster, cm, xform, maxw, filter);
}
Also used : ByteInterleavedRaster(sun.awt.image.ByteInterleavedRaster) SunWritableRaster(sun.awt.image.SunWritableRaster) WritableRaster(java.awt.image.WritableRaster) ColorModel(java.awt.image.ColorModel) DirectColorModel(java.awt.image.DirectColorModel) IndexColorModel(java.awt.image.IndexColorModel) IntegerInterleavedRaster(sun.awt.image.IntegerInterleavedRaster)

Example 2 with IntegerInterleavedRaster

use of sun.awt.image.IntegerInterleavedRaster in project jdk8u_jdk by JetBrains.

the class Raster method createPackedRaster.

/**
     * Creates a Raster based on a SinglePixelPackedSampleModel with
     * the specified DataBuffer, width, height, scanline stride, and
     * band masks.  The number of bands is inferred from bandMasks.length.
     * The upper left corner of the Raster is given by
     * the location argument.  If location is null, (0, 0) will be used.
     * @param dataBuffer the <code>DataBuffer</code> that contains the
     *        image data
     * @param w         the width in pixels of the image data
     * @param h         the height in pixels of the image data
     * @param scanlineStride the line stride of the image data
     * @param bandMasks an array containing an entry for each band
     * @param location  the upper-left corner of the <code>Raster</code>
     * @return a WritableRaster object with the specified
     *         <code>DataBuffer</code>, width, height, scanline stride,
     *         and band masks.
     * @throws RasterFormatException if <code>w</code> or <code>h</code>
     *         is less than or equal to zero, or computing either
     *         <code>location.x + w</code> or
     *         <code>location.y + h</code> results in integer
     *         overflow
     * @throws IllegalArgumentException if <code>dataType</code> is not
     *         one of the supported data types, which are
     *         <code>DataBuffer.TYPE_BYTE</code>,
     *         <code>DataBuffer.TYPE_USHORT</code>
     *         or <code>DataBuffer.TYPE_INT</code>
     * @throws RasterFormatException if <code>dataBuffer</code> has more
     *         than one bank.
     * @throws NullPointerException if <code>dataBuffer</code> is null
     */
public static WritableRaster createPackedRaster(DataBuffer dataBuffer, int w, int h, int scanlineStride, int[] bandMasks, Point location) {
    if (dataBuffer == null) {
        throw new NullPointerException("DataBuffer cannot be null");
    }
    if (location == null) {
        location = new Point(0, 0);
    }
    int dataType = dataBuffer.getDataType();
    SinglePixelPackedSampleModel sppsm = new SinglePixelPackedSampleModel(dataType, w, h, scanlineStride, bandMasks);
    switch(dataType) {
        case DataBuffer.TYPE_BYTE:
            return new ByteInterleavedRaster(sppsm, dataBuffer, location);
        case DataBuffer.TYPE_USHORT:
            return new ShortInterleavedRaster(sppsm, dataBuffer, location);
        case DataBuffer.TYPE_INT:
            return new IntegerInterleavedRaster(sppsm, dataBuffer, location);
        default:
            throw new IllegalArgumentException("Unsupported data type " + dataType);
    }
}
Also used : ByteInterleavedRaster(sun.awt.image.ByteInterleavedRaster) IntegerInterleavedRaster(sun.awt.image.IntegerInterleavedRaster) ShortInterleavedRaster(sun.awt.image.ShortInterleavedRaster) Point(java.awt.Point) Point(java.awt.Point)

Aggregations

ByteInterleavedRaster (sun.awt.image.ByteInterleavedRaster)2 IntegerInterleavedRaster (sun.awt.image.IntegerInterleavedRaster)2 Point (java.awt.Point)1 ColorModel (java.awt.image.ColorModel)1 DirectColorModel (java.awt.image.DirectColorModel)1 IndexColorModel (java.awt.image.IndexColorModel)1 WritableRaster (java.awt.image.WritableRaster)1 ShortInterleavedRaster (sun.awt.image.ShortInterleavedRaster)1 SunWritableRaster (sun.awt.image.SunWritableRaster)1