Mercurial > hg > digilib-old
comparison 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 |
comparison
equal
deleted
inserted
replaced
828:ba708c57e57c | 829:a630d0303cce |
---|---|
20 package digilib.image; | 20 package digilib.image; |
21 | 21 |
22 import java.awt.Image; | 22 import java.awt.Image; |
23 import java.awt.Rectangle; | 23 import java.awt.Rectangle; |
24 import java.awt.RenderingHints; | 24 import java.awt.RenderingHints; |
25 import java.awt.color.ColorSpace; | |
25 import java.awt.geom.AffineTransform; | 26 import java.awt.geom.AffineTransform; |
26 import java.awt.geom.Rectangle2D; | 27 import java.awt.geom.Rectangle2D; |
27 import java.awt.image.AffineTransformOp; | 28 import java.awt.image.AffineTransformOp; |
28 import java.awt.image.BufferedImage; | 29 import java.awt.image.BufferedImage; |
30 import java.awt.image.ColorConvertOp; | |
29 import java.awt.image.ConvolveOp; | 31 import java.awt.image.ConvolveOp; |
30 import java.awt.image.Kernel; | 32 import java.awt.image.Kernel; |
31 import java.awt.image.RescaleOp; | 33 import java.awt.image.RescaleOp; |
32 import java.io.IOException; | 34 import java.io.IOException; |
33 import java.io.OutputStream; | 35 import java.io.OutputStream; |
44 import javax.imageio.stream.FileImageInputStream; | 46 import javax.imageio.stream.FileImageInputStream; |
45 import javax.imageio.stream.ImageInputStream; | 47 import javax.imageio.stream.ImageInputStream; |
46 import javax.imageio.stream.ImageOutputStream; | 48 import javax.imageio.stream.ImageOutputStream; |
47 import javax.servlet.ServletException; | 49 import javax.servlet.ServletException; |
48 | 50 |
51 import digilib.image.DocuImage.ColorOp; | |
49 import digilib.io.FileOpException; | 52 import digilib.io.FileOpException; |
50 import digilib.io.FileOps; | 53 import digilib.io.FileOps; |
51 import digilib.io.ImageInput; | 54 import digilib.io.ImageInput; |
52 import digilib.util.ImageSize; | 55 import digilib.util.ImageSize; |
53 | 56 |
418 * The number of constants must match the number of bands in the image. | 421 * The number of constants must match the number of bands in the image. |
419 * We do only 3 (RGB) bands. | 422 * We do only 3 (RGB) bands. |
420 */ | 423 */ |
421 int ncol = img.getColorModel().getNumColorComponents(); | 424 int ncol = img.getColorModel().getNumColorComponents(); |
422 if ((ncol != 3) || (rgbm.length != 3) || (rgba.length != 3)) { | 425 if ((ncol != 3) || (rgbm.length != 3) || (rgba.length != 3)) { |
423 logger | 426 logger.debug("ERROR(enhance): unknown number of color bands or coefficients (" |
424 .debug("ERROR(enhance): unknown number of color bands or coefficients (" | |
425 + ncol + ")"); | 427 + ncol + ")"); |
426 return; | 428 return; |
427 } | 429 } |
428 RescaleOp scaleOp = new RescaleOp(rgbOrdered(rgbm), rgbOrdered(rgba), | 430 RescaleOp scaleOp = new RescaleOp(rgbOrdered(rgbm), rgbOrdered(rgba), |
429 null); | 431 null); |
470 } | 472 } |
471 } | 473 } |
472 return fb; | 474 return fb; |
473 } | 475 } |
474 | 476 |
477 /* | |
478 * (non-Javadoc) | |
479 * | |
480 * @see | |
481 * digilib.image.DocuImageImpl#colorOp(digilib.image.DocuImage.ColorOps) | |
482 */ | |
483 public void colorOp(ColorOp op) throws ImageOpException { | |
484 if (op == ColorOp.GRAYSCALE) { | |
485 // convert image to grayscale | |
486 ColorConvertOp colop = new ColorConvertOp( | |
487 ColorSpace.getInstance(ColorSpace.CS_GRAY), null); | |
488 img = colop.filter(img, null); | |
489 } | |
490 } | |
491 | |
475 public void rotate(double angle) throws ImageOpException { | 492 public void rotate(double angle) throws ImageOpException { |
476 // setup rotation | 493 // setup rotation |
477 double rangle = Math.toRadians(angle); | 494 double rangle = Math.toRadians(angle); |
478 // create offset to make shure the rotated image has no negative | 495 // create offset to make shure the rotated image has no negative |
479 // coordinates | 496 // coordinates |