class ImageWorker {

    public final ImageWorker makeColorTransparent(final Color transparentColor)
            throws IllegalStateException {
        if (transparentColor == null) {
            throw new IllegalArgumentException(Errors.format(ErrorKeys.NULL_ARGUMENT_$1,
                    "transparentColor"));
        }
        final ColorModel cm = image.getColorModel();
        if (cm instanceof IndexColorModel) {
            return maskIndexColorModel(transparentColor);
        } else if (cm instanceof ComponentColorModel) {
            switch (image.getSampleModel().getDataType()) {
            case DataBuffer.TYPE_BYTE: {
                return maskComponentColorModelByte(transparentColor);
            }
                // Add other types here if we support them...
            }
        }
        throw new IllegalStateException(Errors.format(ErrorKeys.UNSUPPORTED_DATA_TYPE));
    }

    public  ImageWorker();
    public  ImageWorker(final File input);
    public  ImageWorker(final RenderedImage image);

}