class PDCIEBasedColorSpace extends PDColorSpace
{
    //
    // WARNING: this method is performance sensitive, modify with care!
    //
    @Override
    public BufferedImage toRGBImage(WritableRaster raster) throws IOException
    {<FILL_FUNCTION_BODY>}

    @Override
    public BufferedImage toRawImage(WritableRaster raster) throws IOException
    {
        // There is no direct equivalent of a CIE colorspace in Java. So we can
        // not do anything here.
        return null;
    }

    @Override
    public String toString()
    {
        return getName();   // TODO return more info
    }
}

        // This method calls toRGB to convert images one pixel at a time. For matrix-based
        // CIE color spaces this is fast enough. However, it should not be used with any
        // color space which uses an ICC Profile as it will be far too slow.

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

        BufferedImage rgbImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
        WritableRaster rgbRaster = rgbImage.getRaster();

        // always three components: ABC
        float[] abc = new float[3];
        for (int y = 0; y < height; y++)
        {
            for (int x = 0; x < width; x++)
            {
                raster.getPixel(x, y, abc);

                // 0..255 -> 0..1
                abc[0] /= 255;
                abc[1] /= 255;
                abc[2] /= 255;

                float[] rgb = toRGB(abc);

                // 0..1 -> 0..255
                rgb[0] *= 255;
                rgb[1] *= 255;
                rgb[2] *= 255;

                rgbRaster.setPixel(x, y, rgb);
            }
        }

        return rgbImage;
    
<methods>public non-sealed void <init>() ,public static org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace create(org.apache.pdfbox.cos.COSBase) throws java.io.IOException,public static org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace create(org.apache.pdfbox.cos.COSBase, org.apache.pdfbox.pdmodel.PDResources) throws java.io.IOException,public static org.apache.pdfbox.pdmodel.graphics.color.PDColorSpace create(org.apache.pdfbox.cos.COSBase, org.apache.pdfbox.pdmodel.PDResources, boolean) throws java.io.IOException,public org.apache.pdfbox.cos.COSBase getCOSObject() ,public abstract float[] getDefaultDecode(int) ,public abstract org.apache.pdfbox.pdmodel.graphics.color.PDColor getInitialColor() ,public abstract java.lang.String getName() ,public abstract int getNumberOfComponents() ,public abstract float[] toRGB(float[]) throws java.io.IOException,public abstract java.awt.image.BufferedImage toRGBImage(java.awt.image.WritableRaster) throws java.io.IOException,public abstract java.awt.image.BufferedImage toRawImage(java.awt.image.WritableRaster) throws java.io.IOException<variables>protected org.apache.pdfbox.cos.COSArray array,private final java.awt.image.ColorConvertOp colorConvertOp