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    }