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

项目:imagingbook-common    文件:LookupTables.java   
/**
 * Modifies the lookup table to display a bright image with gray values
 * in the range minGray ... 255. Does nothing if ip is of type
 * ColorProcessor.
 * 
 * @param ip The target image.
 * @param minGray Minimum gray value.
 */
public static void brightLut(ImageProcessor ip, int minGray) {
    if (minGray < 0 || minGray >= 255)
        return;
    ColorModel cm = ip.getColorModel();
    if (!(cm instanceof IndexColorModel))
        return;
    IndexColorModel icm = (IndexColorModel) cm;
    int mapSize = icm.getMapSize();
    byte[] reds = new byte[mapSize];
    byte[] grns = new byte[mapSize];
    byte[] blus = new byte[mapSize];
    float scale = (255 - minGray) / 255f;
    for (int i = 0; i < mapSize; i++) {
        byte g = (byte) (Math.round(minGray + scale * i) & 0xFF);
        reds[i] = g;
        grns[i] = g;
        blus[i] = g;
    }
    ip.setColorModel(new IndexColorModel(8, mapSize, reds, grns, blus));
}
项目:openjdk-jdk10    文件:MultipleGradientPaintContext.java   
/**
 * Took this cacheRaster code from GradientPaint. It appears to recycle
 * rasters for use by any other instance, as long as they are sufficiently
 * large.
 */
private static synchronized Raster getCachedRaster(ColorModel cm,
                                                   int w, int h)
{
    if (cm == cachedModel) {
        if (cached != null) {
            Raster ras = cached.get();
            if (ras != null &&
                ras.getWidth() >= w &&
                ras.getHeight() >= h)
            {
                cached = null;
                return ras;
            }
        }
    }
    return cm.createCompatibleWritableRaster(w, h);
}
项目:OpenJSharp    文件:PixelGrabber.java   
/**
 * The setDimensions method is part of the ImageConsumer API which
 * this class must implement to retrieve the pixels.
 * <p>
 * Note: This method is intended to be called by the ImageProducer
 * of the Image whose pixels are being grabbed.  Developers using
 * this class to retrieve pixels from an image should avoid calling
 * this method directly since that operation could result in problems
 * with retrieving the requested pixels.
 * @param width the width of the dimension
 * @param height the height of the dimension
 */
public void setDimensions(int width, int height) {
    if (dstW < 0) {
        dstW = width - dstX;
    }
    if (dstH < 0) {
        dstH = height - dstY;
    }
    if (dstW <= 0 || dstH <= 0) {
        imageComplete(STATICIMAGEDONE);
    } else if (intPixels == null &&
               imageModel == ColorModel.getRGBdefault()) {
        intPixels = new int[dstW * dstH];
        dstScan = dstW;
        dstOff = 0;
    }
    flags |= (ImageObserver.WIDTH | ImageObserver.HEIGHT);
}
项目:openjdk-jdk10    文件:JPEG.java   
/**
 * Given an image type, return the Adobe transform corresponding to
 * that type, or ADOBE_IMPOSSIBLE if the image type is incompatible
 * with an Adobe marker segment.  If {@code input} is true, then
 * the image type is considered before colorspace conversion.
 */
static int transformForType(ImageTypeSpecifier imageType, boolean input) {
    int retval = ADOBE_IMPOSSIBLE;
    ColorModel cm = imageType.getColorModel();
    switch (cm.getColorSpace().getType()) {
    case ColorSpace.TYPE_GRAY:
        retval = ADOBE_UNKNOWN;
        break;
    case ColorSpace.TYPE_RGB:
        retval = input ? ADOBE_YCC : ADOBE_UNKNOWN;
        break;
    case ColorSpace.TYPE_YCbCr:
        retval = ADOBE_YCC;
        break;
    case ColorSpace.TYPE_CMYK:
        retval = input ? ADOBE_YCCK : ADOBE_IMPOSSIBLE;
    }
    return retval;
}
项目:jdk8u-jdk    文件:BufImgSurfaceData.java   
public static SurfaceData createDataBP(BufferedImage bImg,
                                       SurfaceType sType) {
    BytePackedRaster bpRaster =
        (BytePackedRaster)bImg.getRaster();
    BufImgSurfaceData bisd =
        new BufImgSurfaceData(bpRaster.getDataBuffer(), bImg, sType);
    ColorModel cm = bImg.getColorModel();
    IndexColorModel icm = ((cm instanceof IndexColorModel)
                           ? (IndexColorModel) cm
                           : null);
    bisd.initRaster(bpRaster.getDataStorage(),
                    bpRaster.getDataBitOffset() / 8,
                    bpRaster.getDataBitOffset() & 7,
                    bpRaster.getWidth(),
                    bpRaster.getHeight(),
                    0,
                    bpRaster.getScanlineStride(),
                    icm);
    return bisd;
}
项目:openjdk-jdk10    文件:JFIFMarkerSegment.java   
JFIFExtensionMarkerSegment(BufferedImage thumbnail)
    throws IllegalThumbException {

    super(JPEG.APP0);
    ColorModel cm = thumbnail.getColorModel();
    int csType = cm.getColorSpace().getType();
    if (cm.hasAlpha()) {
        throw new IllegalThumbException();
    }
    if (cm instanceof IndexColorModel) {
        code = THUMB_PALETTE;
        thumb = new JFIFThumbPalette(thumbnail);
    } else if (csType == ColorSpace.TYPE_RGB) {
        code = THUMB_RGB;
        thumb = new JFIFThumbRGB(thumbnail);
    } else if (csType == ColorSpace.TYPE_GRAY) {
        code = THUMB_JPEG;
        thumb = new JFIFThumbJPEG(thumbnail);
    } else {
        throw new IllegalThumbException();
    }
}
项目:openjdk-jdk10    文件:GradientPaintContext.java   
static synchronized void putCachedRaster(ColorModel cm, Raster ras) {
    if (cached != null) {
        Raster cras = cached.get();
        if (cras != null) {
            int cw = cras.getWidth();
            int ch = cras.getHeight();
            int iw = ras.getWidth();
            int ih = ras.getHeight();
            if (cw >= iw && ch >= ih) {
                return;
            }
            if (cw * ch >= iw * ih) {
                return;
            }
        }
    }
    cachedModel = cm;
    cached = new WeakReference<>(ras);
}
项目:openjdk-jdk10    文件:X11VolatileSurfaceManager.java   
/**
 * Create a pixmap-based SurfaceData object
 */
protected SurfaceData initAcceleratedSurface() {
    SurfaceData sData;

    try {
        X11GraphicsConfig gc = (X11GraphicsConfig)vImg.getGraphicsConfig();
        ColorModel cm = gc.getColorModel();
        long drawable = 0;
        if (context instanceof Long) {
            drawable = ((Long)context).longValue();
        }
        sData = X11SurfaceData.createData(gc,
                                          vImg.getWidth(),
                                          vImg.getHeight(),
                                          cm, vImg, drawable,
                                          Transparency.OPAQUE);
    } catch (NullPointerException ex) {
        sData = null;
    } catch (OutOfMemoryError er) {
        sData = null;
    }

    return sData;
}
项目:openjdk-jdk10    文件:XWindow.java   
public final void xSetBackground(Color c) {
    XToolkit.awtLock();
    try {
        winBackground(c);
        // fix for 6558510: handle sun.awt.noerasebackground flag,
        // see doEraseBackground() and preInit() methods in XCanvasPeer
        if (!doEraseBackground()) {
            return;
        }
        // 6304250: XAWT: Items in choice show a blue border on OpenGL + Solaris10 when background color is set
        // Note: When OGL is enabled, surfaceData.pixelFor() will not
        // return a pixel value appropriate for passing to
        // XSetWindowBackground().  Therefore, we will use the ColorModel
        // for this component in order to calculate a pixel value from
        // the given RGB value.
        ColorModel cm = getColorModel();
        int pixel = PixelConverter.instance.rgbToPixel(c.getRGB(), cm);
        XlibWrapper.XSetWindowBackground(XToolkit.getDisplay(), getContentWindow(), pixel);
        XlibWrapper.XClearWindow(XToolkit.getDisplay(), getContentWindow());
    }
    finally {
        XToolkit.awtUnlock();
    }
}
项目:jdk8u-jdk    文件:JFIFMarkerSegment.java   
JFIFExtensionMarkerSegment(BufferedImage thumbnail)
    throws IllegalThumbException {

    super(JPEG.APP0);
    ColorModel cm = thumbnail.getColorModel();
    int csType = cm.getColorSpace().getType();
    if (cm.hasAlpha()) {
        throw new IllegalThumbException();
    }
    if (cm instanceof IndexColorModel) {
        code = THUMB_PALETTE;
        thumb = new JFIFThumbPalette(thumbnail);
    } else if (csType == ColorSpace.TYPE_RGB) {
        code = THUMB_RGB;
        thumb = new JFIFThumbRGB(thumbnail);
    } else if (csType == ColorSpace.TYPE_GRAY) {
        code = THUMB_JPEG;
        thumb = new JFIFThumbJPEG(thumbnail);
    } else {
        throw new IllegalThumbException();
    }
}
项目:OpenJSharp    文件:ImageTypeSpecifier.java   
static ColorModel createComponentCM(ColorSpace colorSpace,
                                    int numBands,
                                    int dataType,
                                    boolean hasAlpha,
                                    boolean isAlphaPremultiplied) {
    int transparency =
        hasAlpha ? Transparency.TRANSLUCENT : Transparency.OPAQUE;

    int[] numBits = new int[numBands];
    int bits = DataBuffer.getDataTypeSize(dataType);

    for (int i = 0; i < numBands; i++) {
        numBits[i] = bits;
    }

    return new ComponentColorModel(colorSpace,
                                   numBits,
                                   hasAlpha,
                                   isAlphaPremultiplied,
                                   transparency,
                                   dataType);
}
项目:OpenJSharp    文件:BufferedImageGraphicsConfig.java   
/**
 * Returns the color model associated with this configuration that
 * supports the specified transparency.
 */
public ColorModel getColorModel(int transparency) {

    if (model.getTransparency() == transparency) {
        return model;
    }
    switch (transparency) {
    case Transparency.OPAQUE:
        return new DirectColorModel(24, 0xff0000, 0xff00, 0xff);
    case Transparency.BITMASK:
        return new DirectColorModel(25, 0xff0000, 0xff00, 0xff, 0x1000000);
    case Transparency.TRANSLUCENT:
        return ColorModel.getRGBdefault();
    default:
        return null;
    }
}
项目:openjdk-jdk10    文件:GIFImageWriterSpi.java   
public boolean canEncodeImage(ImageTypeSpecifier type) {
    if (type == null) {
        throw new IllegalArgumentException("type == null!");
    }

    SampleModel sm = type.getSampleModel();
    ColorModel cm = type.getColorModel();

    boolean canEncode = sm.getNumBands() == 1 &&
        sm.getSampleSize(0) <= 8 &&
        sm.getWidth() <= 65535 &&
        sm.getHeight() <= 65535 &&
        (cm == null || cm.getComponentSize()[0] <= 8);

    if (canEncode) {
        return true;
    } else {
        return PaletteBuilder.canCreatePalette(type);
    }
}
项目:openjdk-jdk10    文件:GradientPaintContext.java   
static synchronized Raster getCachedRaster(ColorModel cm, int w, int h) {
    if (cm == cachedModel) {
        if (cached != null) {
            Raster ras = cached.get();
            if (ras != null &&
                ras.getWidth() >= w &&
                ras.getHeight() >= h)
            {
                cached = null;
                return ras;
            }
        }
    }
    return cm.createCompatibleWritableRaster(w, h);
}
项目:openjdk-jdk10    文件:Win32GraphicsConfig.java   
/**
 * Creates a new managed image of the given width and height
 * that is associated with the target Component.
 */
public Image createAcceleratedImage(Component target,
                                    int width, int height)
{
    ColorModel model = getColorModel(Transparency.OPAQUE);
    WritableRaster wr =
        model.createCompatibleWritableRaster(width, height);
    return new OffScreenImage(target, model, wr,
                              model.isAlphaPremultiplied());
}
项目:openjdk-jdk10    文件:ReplicateScaleFilter.java   
/**
 * Choose which rows and columns of the delivered int pixels are
 * needed for the destination scaled image and pass through just
 * those rows and columns that are needed, replicated as necessary.
 * <p>
 * Note: This method is intended to be called by the
 * {@code ImageProducer} of the {@code Image} whose pixels
 * are being filtered. Developers using
 * this class to filter pixels from an image should avoid calling
 * this method directly since that operation could interfere
 * with the filtering operation.
 */
public void setPixels(int x, int y, int w, int h,
                      ColorModel model, int pixels[], int off,
                      int scansize) {
    if (srcrows == null || srccols == null) {
        calculateMaps();
    }
    int sx, sy;
    int dx1 = (2 * x * destWidth + srcWidth - 1) / (2 * srcWidth);
    int dy1 = (2 * y * destHeight + srcHeight - 1) / (2 * srcHeight);
    int outpix[];
    if (outpixbuf != null && outpixbuf instanceof int[]) {
        outpix = (int[]) outpixbuf;
    } else {
        outpix = new int[destWidth];
        outpixbuf = outpix;
    }
    for (int dy = dy1; (sy = srcrows[dy]) < y + h; dy++) {
        int srcoff = off + scansize * (sy - y);
        int dx;
        for (dx = dx1; (sx = srccols[dx]) < x + w; dx++) {
            outpix[dx] = pixels[srcoff + sx - x];
        }
        if (dx > dx1) {
            consumer.setPixels(dx1, dy, dx - dx1, 1,
                               model, outpix, dx1, destWidth);
        }
    }
}
项目:openjdk-jdk10    文件:CrashPaintTest.java   
@Override
public PaintContext createContext(ColorModel cm,
                                  Rectangle deviceBounds,
                                  Rectangle2D userBounds,
                                  AffineTransform at,
                                  RenderingHints hints) {

    // Fill bufferedImage using
    final Graphics2D g2d = (Graphics2D) getImage().getGraphics();
    try {
        g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);
        g2d.setBackground(Color.PINK);
        g2d.clearRect(0, 0, size, size);

        g2d.setColor(Color.BLUE);
        g2d.drawRect(0, 0, size, size);

        g2d.fillOval(size / 10, size / 10,
                     size * 8 / 10, size * 8 / 10);

    } finally {
        g2d.dispose();
    }

    return super.createContext(cm, deviceBounds, userBounds, at, hints);
}
项目:jdk8u-jdk    文件:GeneralCompositePipe.java   
public Object startSequence(SunGraphics2D sg, Shape s, Rectangle devR,
                            int[] abox) {
    RenderingHints hints = sg.getRenderingHints();
    ColorModel model = sg.getDeviceColorModel();
    PaintContext paintContext =
        sg.paint.createContext(model, devR, s.getBounds2D(),
                               sg.cloneTransform(),
                               hints);
    CompositeContext compositeContext =
        sg.composite.createContext(paintContext.getColorModel(), model,
                                   hints);
    return new TileContext(sg, paintContext, compositeContext, model);
}
项目:OpenJSharp    文件:WGLSurfaceData.java   
public WGLVSyncOffScreenSurfaceData(WComponentPeer peer,
                                    WGLGraphicsConfig gc,
                                    int width, int height,
                                    Image image, ColorModel cm,
                                    int type)
{
    super(peer, gc, width, height, image, cm, type);
    flipSurface = WGLSurfaceData.createData(peer, image, FLIP_BACKBUFFER);
}
项目:jdk8u-jdk    文件:PixelConverter.java   
public int rgbToPixel(int rgb, ColorModel cm) {
    int red = (rgb >> 16) & 0xff;
    int grn = (rgb >>  8) & 0xff;
    int blu = (rgb      ) & 0xff;
    return (int) (red * USHORT_RED_MULT +
                  grn * USHORT_GRN_MULT +
                  blu * USHORT_BLU_MULT +
                  0.5);
}
项目:OpenJSharp    文件:GLXSurfaceData.java   
public GLXOffScreenSurfaceData(X11ComponentPeer peer,
                               GLXGraphicsConfig gc,
                               int width, int height,
                               Image image, ColorModel cm,
                               int type)
{
    super(peer, gc, cm, type);

    this.width = width;
    this.height = height;
    offscreenImage = image;

    initSurface(width, height);
}
项目:jdk8u-jdk    文件:Component.java   
/**
 * Gets the instance of <code>ColorModel</code> used to display
 * the component on the output device.
 * @return the color model used by this component
 * @see java.awt.image.ColorModel
 * @see java.awt.peer.ComponentPeer#getColorModel()
 * @see Toolkit#getColorModel()
 * @since JDK1.0
 */
public ColorModel getColorModel() {
    ComponentPeer peer = this.peer;
    if ((peer != null) && ! (peer instanceof LightweightPeer)) {
        return peer.getColorModel();
    } else if (GraphicsEnvironment.isHeadless()) {
        return ColorModel.getRGBdefault();
    } // else
    return getToolkit().getColorModel();
}
项目:jdk8u-jdk    文件:X11GraphicsConfig.java   
/**
 * Returns the color model associated with this configuration that
 * supports the specified transparency.
 */
public ColorModel getColorModel(int transparency) {
    switch (transparency) {
    case Transparency.OPAQUE:
        return getColorModel();
    case Transparency.BITMASK:
        return new DirectColorModel(25, 0xff0000, 0xff00, 0xff, 0x1000000);
    case Transparency.TRANSLUCENT:
        return ColorModel.getRGBdefault();
    default:
        return null;
    }
}
项目:openjdk-jdk10    文件:Win32GraphicsDevice.java   
/**
 * Returns the non-dynamic ColorModel associated with this device
 */
public ColorModel getColorModel() {
    if (colorModel == null)  {
        colorModel = makeColorModel(screen, false);
    }
    return colorModel;
}
项目:jdk8u-jdk    文件:X11SurfaceData.java   
/**
 * Method for instantiating a Pixmap SurfaceData (offscreen)
 */
public static X11PixmapSurfaceData createData(X11GraphicsConfig gc,
                                              int width, int height,
                                              ColorModel cm, Image image,
                                              long drawable,
                                              int transparency)
{
    return new X11PixmapSurfaceData(gc, width, height, image,
                                    getSurfaceType(gc, transparency, true),
                                    cm, drawable, transparency);
}
项目:OpenJSharp    文件:PixelConverter.java   
public int pixelToRgb(int pixel, ColorModel cm) {
    int a, r, g, b;
    // replicate 4 bits for each color
    // 0xARGB -> 0xAARRGGBB
    a = pixel & 0xf000;
    a = ((pixel << 16) | (pixel << 12)) & 0xff000000;
    r = pixel & 0x0f00;
    r = ((pixel << 12) | (pixel <<  8)) & 0x00ff0000;
    g = pixel & 0x00f0;
    g = ((pixel <<  8) | (pixel <<  4)) & 0x0000ff00;
    b = pixel & 0x000f;
    b = ((pixel <<  4) | (pixel <<  0)) & 0x000000ff;

    return (a | r | g | b);
}
项目:OpenJSharp    文件:GLXSurfaceData.java   
protected GLXSurfaceData(X11ComponentPeer peer, GLXGraphicsConfig gc,
                         ColorModel cm, int type)
{
    super(gc, cm, type);
    this.peer = peer;
    this.graphicsConfig = gc;
    initOps(peer, graphicsConfig.getAData());
}
项目:openjdk-jdk10    文件:WComponentPeer.java   
@Override
public ColorModel getColorModel() {
    GraphicsConfiguration gc = getGraphicsConfiguration();
    if (gc != null) {
        return gc.getColorModel();
    }
    else {
        return null;
    }
}
项目:openjdk-jdk10    文件:GeneralCompositePipe.java   
public TileContext(SunGraphics2D sg, PaintContext pCtx,
                   CompositeContext cCtx, ColorModel cModel) {
    sunG2D = sg;
    paintCtxt = pCtx;
    compCtxt = cCtx;
    compModel = cModel;
}
项目:jdk8u-jdk    文件:PixelConverter.java   
public int pixelToRgb(int pixel, ColorModel cm) {
    int r, g, b;
    r = (pixel >> 11) & 0x1f;
    r = (r << 3) | (r >> 2);
    g = (pixel >>  5) & 0x3f;
    g = (g << 2) | (g >> 4);
    b = (pixel      ) & 0x1f;
    b = (b << 3) | (b >> 2);
    return (0xff000000 | (r << 16) | (g << 8) | (b));
}
项目:jdk8u-jdk    文件:CGLGraphicsConfig.java   
@Override
public Image createAcceleratedImage(Component target,
                                    int width, int height)
{
    ColorModel model = getColorModel(Transparency.OPAQUE);
    WritableRaster wr = model.createCompatibleWritableRaster(width, height);
    return new OffScreenImage(target, model, wr,
                              model.isAlphaPremultiplied());
}
项目:OpenJSharp    文件:OffScreenImage.java   
/**
 * Constructs an OffScreenImage given a color model and tile,
 * for offscreen rendering to be used with a given component.
 * The component is used to obtain the foreground color, background
 * color and font.
 */
public OffScreenImage(Component c, ColorModel cm, WritableRaster raster,
                      boolean isRasterPremultiplied)
{
    super(cm, raster, isRasterPremultiplied, null);
    this.c = c;
    initSurface(raster.getWidth(), raster.getHeight());
}
项目:openjdk-jdk10    文件:TexturePaintContext.java   
public Any(WritableRaster srcRas, ColorModel cm,
           AffineTransform xform, int maxw, boolean filter)
{
    super(cm, xform, srcRas.getWidth(), srcRas.getHeight(), maxw);
    this.srcRas = srcRas;
    this.filter = filter;
}
项目:openjdk-jdk10    文件:ImageRepresentation.java   
void createBufferedImage() {
    // REMIND:  Be careful!  Is this called everytime there is a
    // startProduction?  We only want to call it if it is new or
    // there is an error
    isDefaultBI = false;
    try {
        biRaster = cmodel.createCompatibleWritableRaster(width, height);
        bimage = createImage(cmodel, biRaster,
                             cmodel.isAlphaPremultiplied(), null);
    } catch (Exception e) {
        // Create a default image
        cmodel = ColorModel.getRGBdefault();
        biRaster = cmodel.createCompatibleWritableRaster(width, height);
        bimage = createImage(cmodel, biRaster, false, null);
    }
    int type = bimage.getType();

    if ((cmodel == ColorModel.getRGBdefault()) ||
           (type == BufferedImage.TYPE_INT_RGB) ||
           (type == BufferedImage.TYPE_INT_ARGB_PRE)) {
        isDefaultBI = true;
    }
    else if (cmodel instanceof DirectColorModel) {
        DirectColorModel dcm = (DirectColorModel) cmodel;
        if (dcm.getRedMask() == 0xff0000 &&
            dcm.getGreenMask() == 0xff00 &&
            dcm.getBlueMask()  == 0xff) {
            isDefaultBI = true;
        }
    }
}
项目:OpenJSharp    文件:Win32GraphicsDevice.java   
/**
 * Returns the non-dynamic ColorModel associated with this device
 */
public ColorModel getColorModel() {
    if (colorModel == null)  {
        colorModel = makeColorModel(screen, false);
    }
    return colorModel;
}
项目:DigitRecognizer    文件:DigitManipulator.java   
private static BufferedImage deepCopy(BufferedImage bi)
{
    ColorModel cm = bi.getColorModel();
    boolean isAlphaPremultiplied = cm.isAlphaPremultiplied();
    WritableRaster raster = bi.copyData(null);
    return new BufferedImage(cm, raster, isAlphaPremultiplied, null);
}
项目:openjdk-jdk10    文件:TexturePaintContext.java   
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);
}
项目:OpenJSharp    文件:ImageRepresentation.java   
/**
 * Returns the BufferedImage that will be used as the representation of
 * the pixel data.  Subclasses can override this method to return
 * platform specific subclasses of BufferedImage that may or may not be
 * accelerated.
 *
 * It is subclass' responsibility to propagate acceleration priority
 * to the newly created image.
 */
protected BufferedImage createImage(ColorModel cm,
                                    WritableRaster raster,
                                    boolean isRasterPremultiplied,
                                    Hashtable properties)
{
    BufferedImage bi =
        new BufferedImage(cm, raster, isRasterPremultiplied, null);
    bi.setAccelerationPriority(image.getAccelerationPriority());
    return bi;
}
项目:openjdk-jdk10    文件:TexturePaintContext.java   
static synchronized void dropRaster(ColorModel cm, Raster outRas) {
    if (outRas == null) {
        return;
    }
    if (xrgbmodel == cm) {
        xrgbRasRef = new WeakReference<>(outRas);
    } else if (argbmodel == cm) {
        argbRasRef = new WeakReference<>(outRas);
    }
}
项目:OpenJSharp    文件:WGLSurfaceData.java   
/**
 * Creates a SurfaceData object representing an off-screen buffer (either
 * a Pbuffer or Texture).
 */
public static WGLOffScreenSurfaceData createData(WGLGraphicsConfig gc,
                                                 int width, int height,
                                                 ColorModel cm,
                                                 Image image, int type)
{
    return new WGLOffScreenSurfaceData(null, gc, width, height,
                                       image, cm, type);
}