java.awt.image.ColorConvertOp

Here are the examples of the java api class java.awt.image.ColorConvertOp taken from open source projects.

1. PDColorSpace#toRGBImageAWT()

Project: pdfbox
File: PDColorSpace.java
/**
     * Returns the (A)RGB equivalent of the given raster, using the given AWT color space
     * to perform the conversion.
     * @param raster the source raster
     * @param colorSpace the AWT
     * @return an (A)RGB buffered image
     */
protected BufferedImage toRGBImageAWT(WritableRaster raster, ColorSpace colorSpace) {
    //
    // WARNING: this method is performance sensitive, modify with care!
    //
    // ICC Profile color transforms are only fast when performed using ColorConvertOp
    ColorModel colorModel = new ComponentColorModel(colorSpace, false, false, Transparency.OPAQUE, raster.getDataBuffer().getDataType());
    BufferedImage src = new BufferedImage(colorModel, raster, false, null);
    BufferedImage dest = new BufferedImage(raster.getWidth(), raster.getHeight(), BufferedImage.TYPE_INT_RGB);
    ColorConvertOp op = new ColorConvertOp(null);
    op.filter(src, dest);
    return dest;
}

2. ColConvDCMTest#testSubImage()

Project: openjdk
File: ColConvDCMTest.java
static boolean testSubImage(int x0, int y0, int dx, int dy, int type, int rBits, int gBits, int bBits, int cs, BufferedImage gldImage, double accuracy) {
    BufferedImage src = ImageFactory.createDCMImage(type, cs);
    BufferedImage subSrc = src.getSubimage(x0, y0, dx, dy);
    BufferedImage dst = ImageFactory.createDstImage(BufferedImage.TYPE_INT_RGB);
    BufferedImage subDst = dst.getSubimage(x0, y0, dx, dy);
    ColorConvertOp op = new ColorConvertOp(null);
    op.filter(subSrc, subDst);
    ImageComparator cmp = new ImageComparator(accuracy, rBits, gBits, bBits);
    boolean result = cmp.compare(subDst, gldImage, x0, y0, dx, dy);
    if (!result) {
        System.err.println(cmp.getStat());
    }
    return result;
}

3. ColConvDCMTest#testImage()

Project: openjdk
File: ColConvDCMTest.java
static boolean testImage(int type, int rBits, int gBits, int bBits, int cs, BufferedImage gldImage, double accuracy) {
    BufferedImage src = ImageFactory.createDCMImage(type, cs);
    BufferedImage dst = ImageFactory.createDstImage(BufferedImage.TYPE_INT_RGB);
    ColorConvertOp op = new ColorConvertOp(null);
    op.filter(src, dst);
    ImageComparator cmp = new ImageComparator(accuracy, rBits, gBits, bBits);
    boolean result = cmp.compare(gldImage, dst);
    if (!result) {
        System.err.println(cmp.getStat());
    }
    return result;
}

4. ColConvCCMTest#testSubImage()

Project: openjdk
File: ColConvCCMTest.java
static boolean testSubImage(int x0, int y0, int dx, int dy, int dataType, int rBits, int gBits, int bBits, int cs, BufferedImage gldImage, double accuracy) {
    BufferedImage src = ImageFactory.createCCMImage(cs, dataType);
    BufferedImage subSrc = src.getSubimage(x0, y0, dx, dy);
    BufferedImage dst = ImageFactory.createDstImage(BufferedImage.TYPE_INT_RGB);
    BufferedImage subDst = dst.getSubimage(x0, y0, dx, dy);
    ColorConvertOp op = new ColorConvertOp(null);
    op.filter(subSrc, subDst);
    ImageComparator cmp = new ImageComparator(accuracy, rBits, gBits, bBits);
    boolean result = cmp.compare(subDst, gldImage, x0, y0, dx, dy);
    if (!result) {
        System.err.println(cmp.getStat());
    }
    return result;
}

5. ColConvCCMTest#testImage()

Project: openjdk
File: ColConvCCMTest.java
static boolean testImage(int dataType, int rBits, int gBits, int bBits, int cs, BufferedImage gldImage, double accuracy) {
    BufferedImage src = ImageFactory.createCCMImage(cs, dataType);
    BufferedImage dst = ImageFactory.createDstImage(BufferedImage.TYPE_INT_RGB);
    ColorConvertOp op = new ColorConvertOp(null);
    op.filter(src, dst);
    ImageComparator cmp = new ImageComparator(accuracy, rBits, gBits, bBits);
    boolean result = cmp.compare(gldImage, dst);
    if (!result) {
        System.err.println(cmp.getStat());
    }
    return result;
}

6. ColConvDCMTest#testSubImage()

Project: jdk7u-jdk
File: ColConvDCMTest.java
static boolean testSubImage(int x0, int y0, int dx, int dy, int type, int rBits, int gBits, int bBits, int cs, BufferedImage gldImage, double accuracy) {
    BufferedImage src = ImageFactory.createDCMImage(type, cs);
    BufferedImage subSrc = src.getSubimage(x0, y0, dx, dy);
    BufferedImage dst = ImageFactory.createDstImage(BufferedImage.TYPE_INT_RGB);
    BufferedImage subDst = dst.getSubimage(x0, y0, dx, dy);
    ColorConvertOp op = new ColorConvertOp(null);
    op.filter(subSrc, subDst);
    ImageComparator cmp = new ImageComparator(accuracy, rBits, gBits, bBits);
    boolean result = cmp.compare(subDst, gldImage, x0, y0, dx, dy);
    if (!result) {
        System.err.println(cmp.getStat());
    }
    return result;
}

7. ColConvDCMTest#testImage()

Project: jdk7u-jdk
File: ColConvDCMTest.java
static boolean testImage(int type, int rBits, int gBits, int bBits, int cs, BufferedImage gldImage, double accuracy) {
    BufferedImage src = ImageFactory.createDCMImage(type, cs);
    BufferedImage dst = ImageFactory.createDstImage(BufferedImage.TYPE_INT_RGB);
    ColorConvertOp op = new ColorConvertOp(null);
    op.filter(src, dst);
    ImageComparator cmp = new ImageComparator(accuracy, rBits, gBits, bBits);
    boolean result = cmp.compare(gldImage, dst);
    if (!result) {
        System.err.println(cmp.getStat());
    }
    return result;
}

8. ColConvCCMTest#testSubImage()

Project: jdk7u-jdk
File: ColConvCCMTest.java
static boolean testSubImage(int x0, int y0, int dx, int dy, int dataType, int rBits, int gBits, int bBits, int cs, BufferedImage gldImage, double accuracy) {
    BufferedImage src = ImageFactory.createCCMImage(cs, dataType);
    BufferedImage subSrc = src.getSubimage(x0, y0, dx, dy);
    BufferedImage dst = ImageFactory.createDstImage(BufferedImage.TYPE_INT_RGB);
    BufferedImage subDst = dst.getSubimage(x0, y0, dx, dy);
    ColorConvertOp op = new ColorConvertOp(null);
    op.filter(subSrc, subDst);
    ImageComparator cmp = new ImageComparator(accuracy, rBits, gBits, bBits);
    boolean result = cmp.compare(subDst, gldImage, x0, y0, dx, dy);
    if (!result) {
        System.err.println(cmp.getStat());
    }
    return result;
}

9. ColConvCCMTest#testImage()

Project: jdk7u-jdk
File: ColConvCCMTest.java
static boolean testImage(int dataType, int rBits, int gBits, int bBits, int cs, BufferedImage gldImage, double accuracy) {
    BufferedImage src = ImageFactory.createCCMImage(cs, dataType);
    BufferedImage dst = ImageFactory.createDstImage(BufferedImage.TYPE_INT_RGB);
    ColorConvertOp op = new ColorConvertOp(null);
    op.filter(src, dst);
    ImageComparator cmp = new ImageComparator(accuracy, rBits, gBits, bBits);
    boolean result = cmp.compare(gldImage, dst);
    if (!result) {
        System.err.println(cmp.getStat());
    }
    return result;
}

10. ColorTools#convertBetweenColorSpaces()

Project: sanselan
File: ColorTools.java
public BufferedImage convertBetweenColorSpaces(BufferedImage bi, ColorSpace from, ColorSpace to) {
    RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
    ColorConvertOp op = new ColorConvertOp(from, to, hints);
    bi = relabelColorSpace(bi, from);
    BufferedImage result = op.filter(bi, null);
    result = relabelColorSpace(result, to);
    return result;
}

11. ColorTools#convertToColorSpace()

Project: sanselan
File: ColorTools.java
public BufferedImage convertToColorSpace(BufferedImage bi, ColorSpace to) {
    ColorSpace from = bi.getColorModel().getColorSpace();
    RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
    ColorConvertOp op = new ColorConvertOp(from, to, hints);
    BufferedImage result = op.filter(bi, null);
    result = relabelColorSpace(result, to);
    return result;
}

12. InvalidRenderIntentTest#main()

Project: openjdk
File: InvalidRenderIntentTest.java
public static void main(String[] args) {
    ICC_Profile pSRGB = ICC_Profile.getInstance(CS_sRGB);
    byte[] raw_data = pSRGB.getData();
    setRenderingIntent(0x1000000, raw_data);
    ICC_Profile p = ICC_Profile.getInstance(raw_data);
    ICC_ColorSpace cs = new ICC_ColorSpace(p);
    // perfrom test color conversion
    ColorConvertOp op = new ColorConvertOp(cs, ColorSpace.getInstance(CS_sRGB), null);
    BufferedImage src = new BufferedImage(1, 1, TYPE_3BYTE_BGR);
    BufferedImage dst = new BufferedImage(1, 1, TYPE_3BYTE_BGR);
    try {
        op.filter(src.getRaster(), dst.getRaster());
    } catch (CMMException e) {
        throw new RuntimeException("Test failed.", e);
    }
    System.out.println("Test passed.");
}

13. ColorTools#convertBetweenColorSpaces()

Project: commons-imaging
File: ColorTools.java
public BufferedImage convertBetweenColorSpaces(BufferedImage bi, final ColorSpace from, final ColorSpace to) {
    final RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
    final ColorConvertOp op = new ColorConvertOp(from, to, hints);
    bi = relabelColorSpace(bi, from);
    BufferedImage result = op.filter(bi, null);
    result = relabelColorSpace(result, to);
    return result;
}

14. ColorTools#convertToColorSpace()

Project: commons-imaging
File: ColorTools.java
public BufferedImage convertToColorSpace(final BufferedImage bi, final ColorSpace to) {
    final ColorSpace from = bi.getColorModel().getColorSpace();
    final RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
    final ColorConvertOp op = new ColorConvertOp(from, to, hints);
    BufferedImage result = op.filter(bi, null);
    result = relabelColorSpace(result, to);
    return result;
}

15. ColCvtIntARGB#main()

Project: openjdk
File: ColCvtIntARGB.java
public static void main(String args[]) {
    //
    // Build a 1 pixel ARGB, non-premultiplied image
    //
    BufferedImage src = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
    // Set src pixel value
    Color pelColor = new Color(100, 100, 100, 128);
    src.setRGB(0, 0, pelColor.getRGB());
    //
    // ColorConvertOp filter
    //
    ColorConvertOp op = new ColorConvertOp(null);
    //
    // Test ARGB -> ARGB_PRE
    //
    BufferedImage dst = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB_PRE);
    op.filter(src, dst);
    if (((dst.getRGB(0, 0) >> 24) & 0xff) != 128) {
        throw new RuntimeException("Incorrect destination alpha value.");
    }
    //
    // Test ARGB -> ARGB
    //
    dst = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
    op.filter(src, dst);
    if (((dst.getRGB(0, 0) >> 24) & 0xff) != 128) {
        throw new RuntimeException("Incorrect destination alpha value.");
    }
}

16. ColCvtIntARGB#main()

Project: jdk7u-jdk
File: ColCvtIntARGB.java
public static void main(String args[]) {
    //
    // Build a 1 pixel ARGB, non-premultiplied image
    //
    BufferedImage src = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
    // Set src pixel value
    Color pelColor = new Color(100, 100, 100, 128);
    src.setRGB(0, 0, pelColor.getRGB());
    //
    // ColorConvertOp filter
    //
    ColorConvertOp op = new ColorConvertOp(null);
    //
    // Test ARGB -> ARGB_PRE
    //
    BufferedImage dst = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB_PRE);
    op.filter(src, dst);
    if (((dst.getRGB(0, 0) >> 24) & 0xff) != 128) {
        throw new RuntimeException("Incorrect destination alpha value.");
    }
    //
    // Test ARGB -> ARGB
    //
    dst = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
    op.filter(src, dst);
    if (((dst.getRGB(0, 0) >> 24) & 0xff) != 128) {
        throw new RuntimeException("Incorrect destination alpha value.");
    }
}

17. ImageTransformUtils#convertToGrayscale()

Project: simpleimage
File: ImageTransformUtils.java
public static BufferedImage convertToGrayscale(BufferedImage input) {
    BufferedImage output = new BufferedImage(input.getWidth(), input.getHeight(), input.getType());
    ColorConvertOp op = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null);
    op.filter(input, output);
    return output;
}

18. ColCvtAlpha#main()

Project: openjdk
File: 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.");
        }
    }
}

19. Lookup#toGray()

Project: lookup
File: Lookup.java
public static BufferedImage toGray(BufferedImage bi) {
    BufferedImage out = new BufferedImage(bi.getWidth(), bi.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
    ColorConvertOp op = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null);
    op.filter(bi, out);
    return out;
}

20. ImageUtils#convertToGrayscaleTexture()

Project: jmonkeyengine
File: ImageUtils.java
/**
     * This method converts the given texture into black and whit (grayscale) texture.
     * 
     * @param source
     *            the source texture
     * @return grayscale texture
     */
public static Image convertToGrayscaleTexture(Image source) {
    BufferedImage sourceImage = ImageToAwt.convert(source, false, false, 0);
    ColorConvertOp op = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null);
    op.filter(sourceImage, sourceImage);
    return ImageUtils.toJmeImage(sourceImage, source.getFormat());
}

21. ImageUtils#convertToNormalMapTexture()

Project: jmonkeyengine
File: ImageUtils.java
/**
     * This method converts the given texture into normal-map texture.
     * 
     * @param source
     *            the source texture
     * @param strengthFactor
     *            the normal strength factor
     * @return normal-map texture
     */
public static Image convertToNormalMapTexture(Image source, float strengthFactor) {
    BufferedImage sourceImage = ImageToAwt.convert(source, false, false, 0);
    BufferedImage heightMap = new BufferedImage(sourceImage.getWidth(), sourceImage.getHeight(), BufferedImage.TYPE_INT_ARGB);
    BufferedImage bumpMap = new BufferedImage(sourceImage.getWidth(), sourceImage.getHeight(), BufferedImage.TYPE_INT_ARGB);
    ColorConvertOp gscale = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null);
    gscale.filter(sourceImage, heightMap);
    Vector3f S = new Vector3f();
    Vector3f T = new Vector3f();
    Vector3f N = new Vector3f();
    for (int x = 0; x < bumpMap.getWidth(); ++x) {
        for (int y = 0; y < bumpMap.getHeight(); ++y) {
            // generating bump pixel
            S.x = 1;
            S.y = 0;
            S.z = strengthFactor * ImageUtils.getHeight(heightMap, x + 1, y) - strengthFactor * ImageUtils.getHeight(heightMap, x - 1, y);
            T.x = 0;
            T.y = 1;
            T.z = strengthFactor * ImageUtils.getHeight(heightMap, x, y + 1) - strengthFactor * ImageUtils.getHeight(heightMap, x, y - 1);
            float den = (float) Math.sqrt(S.z * S.z + T.z * T.z + 1);
            N.x = -S.z;
            N.y = -T.z;
            N.z = 1;
            N.divideLocal(den);
            // setting thge pixel in the result image
            bumpMap.setRGB(x, y, ImageUtils.vectorToColor(N.x, N.y, N.z));
        }
    }
    return ImageUtils.toJmeImage(bumpMap, source.getFormat());
}

22. ColCvtAlpha#main()

Project: jdk7u-jdk
File: 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.");
        }
    }
}

23. DefaultMonochromeBitmapConverter#convertToMonochrome()

Project: fop
File: DefaultMonochromeBitmapConverter.java
/** {@inheritDoc} */
public RenderedImage convertToMonochrome(BufferedImage img) {
    BufferedImage buf = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_BYTE_BINARY);
    RenderingHints hints = new RenderingHints(null);
    //This hint doesn't seem to make a difference :-(
    hints.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
    ColorConvertOp op = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), hints);
    op.filter(img, buf);
    return buf;
}

24. ImageArtifactProcessor#stripAlpha()

Project: broadleaf_modify
File: ImageArtifactProcessor.java
protected BufferedImage stripAlpha(BufferedImage image) {
    BufferedImage raw_image = image;
    image = new BufferedImage(raw_image.getWidth(), raw_image.getHeight(), BufferedImage.TYPE_INT_RGB);
    ColorConvertOp xformOp = new ColorConvertOp(null);
    xformOp.filter(raw_image, image);
    return image;
}

25. ImageArtifactProcessor#stripAlpha()

Project: BroadleafCommerce
File: ImageArtifactProcessor.java
protected BufferedImage stripAlpha(BufferedImage image) {
    BufferedImage raw_image = image;
    image = new BufferedImage(raw_image.getWidth(), raw_image.getHeight(), BufferedImage.TYPE_INT_RGB);
    ColorConvertOp xformOp = new ColorConvertOp(null);
    xformOp.filter(raw_image, image);
    return image;
}

26. Any2sRGBRed#copyData()

Project: xml-graphics-commons
File: Any2sRGBRed.java
public WritableRaster copyData(WritableRaster wr) {
    // Get my source.
    CachableRed src = (CachableRed) getSources().get(0);
    ColorModel srcCM = src.getColorModel();
    SampleModel srcSM = src.getSampleModel();
    // Fast case, Linear SRGB source, INT Pack writable raster...
    if (srcIsLsRGB && is_INT_PACK_COMP(wr.getSampleModel())) {
        src.copyData(wr);
        if (srcCM.hasAlpha()) {
            GraphicsUtil.coerceData(wr, srcCM, false);
        }
        applyLut_INT(wr, linearToSRGBLut);
        return wr;
    }
    if (srcCM == null) {
        // We don't really know much about this source, let's
        // guess based on the number of bands...
        float[][] matrix = null;
        switch(srcSM.getNumBands()) {
            case 1:
                matrix = new float[3][1];
                // Red
                matrix[0][0] = 1;
                // Grn
                matrix[1][0] = 1;
                // Blu
                matrix[2][0] = 1;
                break;
            case 2:
                matrix = new float[4][2];
                // Red
                matrix[0][0] = 1;
                // Grn
                matrix[1][0] = 1;
                // Blu
                matrix[3][0] = 1;
                // Alpha
                matrix[3][1] = 1;
                break;
            case 3:
                matrix = new float[3][3];
                // Red
                matrix[0][0] = 1;
                // Grn
                matrix[1][1] = 1;
                // Blu
                matrix[2][2] = 1;
                break;
            default:
                matrix = new float[4][srcSM.getNumBands()];
                // Red
                matrix[0][0] = 1;
                // Grn
                matrix[1][1] = 1;
                // Blu
                matrix[2][2] = 1;
                // Alpha
                matrix[3][3] = 1;
                break;
        }
        Raster srcRas = src.getData(wr.getBounds());
        BandCombineOp op = new BandCombineOp(matrix, null);
        op.filter(srcRas, wr);
        return wr;
    }
    if (srcCM.getColorSpace() == ColorSpace.getInstance(ColorSpace.CS_GRAY)) {
        // has sRGB gamma applied.
        try {
            float[][] matrix = null;
            switch(srcSM.getNumBands()) {
                case 1:
                    matrix = new float[3][1];
                    // Red
                    matrix[0][0] = 1;
                    // Grn
                    matrix[1][0] = 1;
                    // Blu
                    matrix[2][0] = 1;
                    break;
                case 2:
                default:
                    matrix = new float[4][2];
                    // Red
                    matrix[0][0] = 1;
                    // Grn
                    matrix[1][0] = 1;
                    // Blu
                    matrix[3][0] = 1;
                    // Alpha
                    matrix[4][1] = 1;
                    break;
            }
            Raster srcRas = src.getData(wr.getBounds());
            BandCombineOp op = new BandCombineOp(matrix, null);
            op.filter(srcRas, wr);
        } catch (Throwable t) {
            t.printStackTrace();
        }
        return wr;
    }
    ColorModel dstCM = getColorModel();
    if (srcCM.getColorSpace() == dstCM.getColorSpace()) {
        if (is_INT_PACK_COMP(srcSM)) {
            src.copyData(wr);
        } else {
            GraphicsUtil.copyData(src.getData(wr.getBounds()), wr);
        }
        return wr;
    }
    Raster srcRas = src.getData(wr.getBounds());
    assert srcRas instanceof WritableRaster;
    WritableRaster srcWr = (WritableRaster) srcRas;
    // Divide out alpha if we have it.  We need to do this since
    // the color convert may not be a linear operation which may
    // lead to out of range values.
    ColorModel srcBICM = srcCM;
    if (srcCM.hasAlpha()) {
        srcBICM = GraphicsUtil.coerceData(srcWr, srcCM, false);
    }
    BufferedImage srcBI;
    BufferedImage dstBI;
    srcBI = new BufferedImage(srcBICM, srcWr.createWritableTranslatedChild(0, 0), false, null);
    // System.out.println("src: " + srcBI.getWidth() + "x" +
    //                    srcBI.getHeight());
    ColorConvertOp op = new ColorConvertOp(dstCM.getColorSpace(), null);
    dstBI = op.filter(srcBI, null);
    // System.out.println("After filter:");
    WritableRaster wr00 = wr.createWritableTranslatedChild(0, 0);
    for (int i = 0; i < dstCM.getColorSpace().getNumComponents(); i++) {
        copyBand(dstBI.getRaster(), i, wr00, i);
    }
    if (dstCM.hasAlpha()) {
        copyBand(srcWr, srcSM.getNumBands() - 1, wr, getSampleModel().getNumBands() - 1);
    }
    return wr;
}

27. ColorTools#convertBetweenColorSpacesX2()

Project: sanselan
File: ColorTools.java
public BufferedImage convertBetweenColorSpacesX2(BufferedImage bi, ColorSpace from, ColorSpace to) {
    RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
    // bi = relabelColorSpace(bi, cs);
    // dumpColorSpace("\tcs_sRGB", cs_sRGB);
    // dumpColorSpace("\tColorModel.getRGBdefaultc",
    // ColorModel.getRGBdefault().getColorSpace());
    bi = relabelColorSpace(bi, from);
    ColorConvertOp op = new ColorConvertOp(from, to, hints);
    bi = op.filter(bi, null);
    bi = relabelColorSpace(bi, from);
    bi = op.filter(bi, null);
    bi = relabelColorSpace(bi, to);
    return bi;
}

28. AlphaTest#main()

Project: openjdk
File: AlphaTest.java
public static void main(String[] args) {
    ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY);
    ColorConvertOp op = new ColorConvertOp(cs, null);
    // create source image filled with an opaque color
    BufferedImage src = createSrc();
    int srcAlpha = getAlpha(src);
    System.out.printf("Src alpha: 0x%02x\n", srcAlpha);
    // create clear (transparent black) destination image
    BufferedImage dst = createDst();
    int dstAlpha = getAlpha(dst);
    System.out.printf("Dst alpha: 0x%02x\n", dstAlpha);
    dst = op.filter(src, dst);
    dstAlpha = getAlpha(dst);
    // we expect that destination image is opaque
    // i.e. alpha is transferred from source to
    // the destination
    System.out.printf("Result alpha: 0x%02x\n", dstAlpha);
    if (srcAlpha != dstAlpha) {
        throw new RuntimeException("Test failed!");
    }
    System.out.println("Test passed");
}

29. Tamura#extract()

Project: LIRE
File: Tamura.java
@Override
public void extract(BufferedImage image) {
    histogram = new double[18];
    double[] directionality;
    ColorConvertOp op = new ColorConvertOp(image.getColorModel().getColorSpace(), ColorSpace.getInstance(ColorSpace.CS_GRAY), new RenderingHints(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY));
    BufferedImage bimg = op.filter(image, null);
    bimg = ImageUtils.scaleImage(bimg, MAX_IMG_HEIGHT);
    Raster raster = bimg.getRaster();
    int[] tmp = new int[3];
    this.grayScales = new int[raster.getWidth()][raster.getHeight()];
    for (int i = 0; i < raster.getWidth(); i++) {
        for (int j = 0; j < raster.getHeight(); j++) {
            raster.getPixel(i, j, tmp);
            this.grayScales[i][j] = tmp[0];
        }
    }
    imgWidth = bimg.getWidth();
    imgHeight = bimg.getHeight();
    histogram[0] = this.coarseness(bimg.getWidth(), bimg.getHeight());
    histogram[1] = this.contrast();
    directionality = this.directionality();
    for (int i = 2; i < histogram.length; i++) {
        histogram[i] = directionality[i - 2];
    }
}

30. ColorTools#convertBetweenColorSpacesX2()

Project: commons-imaging
File: ColorTools.java
public BufferedImage convertBetweenColorSpacesX2(BufferedImage bi, final ColorSpace from, final ColorSpace to) {
    final RenderingHints hints = new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
    hints.put(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
    // bi = relabelColorSpace(bi, cs);
    // dumpColorSpace("\tcs_sRGB", cs_sRGB);
    // dumpColorSpace("\tColorModel.getRGBdefaultc",
    // ColorModel.getRGBdefault().getColorSpace());
    bi = relabelColorSpace(bi, from);
    final ColorConvertOp op = new ColorConvertOp(from, to, hints);
    bi = op.filter(bi, null);
    bi = relabelColorSpace(bi, from);
    bi = op.filter(bi, null);
    bi = relabelColorSpace(bi, to);
    return bi;
}

31. GrayScaleOperation#apply()

Project: cocoon
File: GrayScaleOperation.java
public WritableRaster apply(WritableRaster image) {
    if (!enabled) {
        return image;
    }
    ColorSpace grayspace = ColorSpace.getInstance(ColorSpace.CS_GRAY);
    ColorConvertOp op = new ColorConvertOp(grayspace, null);
    WritableRaster r = op.filter(image, null);
    return r;
}

32. Any2sRGBRed#copyData()

Project: batik
File: Any2sRGBRed.java
public WritableRaster copyData(WritableRaster wr) {
    // Get my source.
    CachableRed src = (CachableRed) getSources().get(0);
    ColorModel srcCM = src.getColorModel();
    SampleModel srcSM = src.getSampleModel();
    // Fast case, Linear SRGB source, INT Pack writable raster...
    if (srcIsLsRGB && is_INT_PACK_COMP(wr.getSampleModel())) {
        src.copyData(wr);
        if (srcCM.hasAlpha())
            GraphicsUtil.coerceData(wr, srcCM, false);
        applyLut_INT(wr, linearToSRGBLut);
        return wr;
    }
    if (srcCM == null) {
        // We don't really know much about this source, let's
        // guess based on the number of bands...
        float[][] matrix = null;
        switch(srcSM.getNumBands()) {
            case 1:
                matrix = new float[3][1];
                // Red
                matrix[0][0] = 1;
                // Grn
                matrix[1][0] = 1;
                // Blu
                matrix[2][0] = 1;
                break;
            case 2:
                matrix = new float[4][2];
                // Red
                matrix[0][0] = 1;
                // Grn
                matrix[1][0] = 1;
                // Blu
                matrix[2][0] = 1;
                // Alpha
                matrix[3][1] = 1;
                break;
            case 3:
                matrix = new float[3][3];
                // Red
                matrix[0][0] = 1;
                // Grn
                matrix[1][1] = 1;
                // Blu
                matrix[2][2] = 1;
                break;
            default:
                matrix = new float[4][srcSM.getNumBands()];
                // Red
                matrix[0][0] = 1;
                // Grn
                matrix[1][1] = 1;
                // Blu
                matrix[2][2] = 1;
                // Alpha
                matrix[3][3] = 1;
                break;
        }
        Raster srcRas = src.getData(wr.getBounds());
        BandCombineOp op = new BandCombineOp(matrix, null);
        op.filter(srcRas, wr);
        return wr;
    }
    if (srcCM.getColorSpace() == ColorSpace.getInstance(ColorSpace.CS_GRAY)) {
        // has sRGB gamma applied.
        try {
            float[][] matrix = null;
            switch(srcSM.getNumBands()) {
                case 1:
                    matrix = new float[3][1];
                    // Red
                    matrix[0][0] = 1;
                    // Grn
                    matrix[1][0] = 1;
                    // Blu
                    matrix[2][0] = 1;
                    break;
                case 2:
                default:
                    matrix = new float[4][2];
                    // Red
                    matrix[0][0] = 1;
                    // Grn
                    matrix[1][0] = 1;
                    // Blu
                    matrix[2][0] = 1;
                    // Alpha
                    matrix[3][1] = 1;
                    break;
            }
            Raster srcRas = src.getData(wr.getBounds());
            BandCombineOp op = new BandCombineOp(matrix, null);
            op.filter(srcRas, wr);
        } catch (Throwable t) {
            t.printStackTrace();
        }
        return wr;
    }
    ColorModel dstCM = getColorModel();
    if (srcCM.getColorSpace() == dstCM.getColorSpace()) {
        if (is_INT_PACK_COMP(srcSM))
            src.copyData(wr);
        else
            GraphicsUtil.copyData(src.getData(wr.getBounds()), wr);
        return wr;
    }
    Raster srcRas = src.getData(wr.getBounds());
    WritableRaster srcWr = (WritableRaster) srcRas;
    // Divide out alpha if we have it.  We need to do this since
    // the color convert may not be a linear operation which may
    // lead to out of range values.
    ColorModel srcBICM = srcCM;
    if (srcCM.hasAlpha())
        srcBICM = GraphicsUtil.coerceData(srcWr, srcCM, false);
    BufferedImage srcBI, dstBI;
    srcBI = new BufferedImage(srcBICM, srcWr.createWritableTranslatedChild(0, 0), false, null);
    // System.out.println("src: " + srcBI.getWidth() + "x" +
    //                    srcBI.getHeight());
    ColorConvertOp op = new ColorConvertOp(dstCM.getColorSpace(), null);
    dstBI = op.filter(srcBI, null);
    // System.out.println("After filter:");
    WritableRaster wr00 = wr.createWritableTranslatedChild(0, 0);
    for (int i = 0; i < dstCM.getColorSpace().getNumComponents(); i++) copyBand(dstBI.getRaster(), i, wr00, i);
    if (dstCM.hasAlpha())
        copyBand(srcWr, srcSM.getNumBands() - 1, wr, getSampleModel().getNumBands() - 1);
    return wr;
}