Mercurial > hg > digilib-old
diff servlet/src/digilib/image/ImageLoaderDocuImage.java @ 829:a630d0303cce stream
new servlet operation colop=grayscale.
author | robcast |
---|---|
date | Fri, 25 Feb 2011 11:34:49 +0100 |
parents | f210731dc6cc |
children | 30037e93ec2a |
line wrap: on
line diff
--- a/servlet/src/digilib/image/ImageLoaderDocuImage.java Wed Feb 23 18:09:31 2011 +0100 +++ b/servlet/src/digilib/image/ImageLoaderDocuImage.java Fri Feb 25 11:34:49 2011 +0100 @@ -22,10 +22,12 @@ import java.awt.Image; import java.awt.Rectangle; import java.awt.RenderingHints; +import java.awt.color.ColorSpace; import java.awt.geom.AffineTransform; import java.awt.geom.Rectangle2D; import java.awt.image.AffineTransformOp; import java.awt.image.BufferedImage; +import java.awt.image.ColorConvertOp; import java.awt.image.ConvolveOp; import java.awt.image.Kernel; import java.awt.image.RescaleOp; @@ -46,6 +48,7 @@ import javax.imageio.stream.ImageOutputStream; import javax.servlet.ServletException; +import digilib.image.DocuImage.ColorOp; import digilib.io.FileOpException; import digilib.io.FileOps; import digilib.io.ImageInput; @@ -420,8 +423,7 @@ */ int ncol = img.getColorModel().getNumColorComponents(); if ((ncol != 3) || (rgbm.length != 3) || (rgba.length != 3)) { - logger - .debug("ERROR(enhance): unknown number of color bands or coefficients (" + logger.debug("ERROR(enhance): unknown number of color bands or coefficients (" + ncol + ")"); return; } @@ -472,6 +474,21 @@ return fb; } + /* + * (non-Javadoc) + * + * @see + * digilib.image.DocuImageImpl#colorOp(digilib.image.DocuImage.ColorOps) + */ + public void colorOp(ColorOp op) throws ImageOpException { + if (op == ColorOp.GRAYSCALE) { + // convert image to grayscale + ColorConvertOp colop = new ColorConvertOp( + ColorSpace.getInstance(ColorSpace.CS_GRAY), null); + img = colop.filter(img, null); + } + } + public void rotate(double angle) throws ImageOpException { // setup rotation double rangle = Math.toRadians(angle);