001 package org.mycore.services.imaging.JAI.imgOperation;
002
003 import java.awt.image.renderable.ParameterBlock;
004
005 import javax.media.jai.Interpolation;
006 import javax.media.jai.JAI;
007 import javax.media.jai.PlanarImage;
008 import javax.media.jai.RenderedOp;
009
010
011 public class MCRJAIRotateOp implements MCRJAIImageOp {
012 protected float rotAngle;
013
014 public MCRJAIRotateOp(float rotAngle) {
015 this.rotAngle = rotAngle;
016 }
017
018 protected RenderedOp rotate(PlanarImage image, float rotAngle) {
019 ParameterBlock pb = new ParameterBlock();
020 pb.addSource(image);
021 pb.add((float)image.getWidth()/2);
022 pb.add((float)image.getHeight()/2);
023 pb.add(rotAngle);
024 pb.add(Interpolation.getInstance(Interpolation.INTERP_NEAREST));
025 return JAI.create("rotate", pb);
026 }
027
028 public RenderedOp executeOp(PlanarImage image) {
029 return rotate(image, rotAngle);
030 }
031
032 public int getOrder() {
033 return 100;
034 }
035
036 }