001    package org.mycore.services.imaging.JAI;
002    
003    import java.io.IOException;
004    import java.io.InputStream;
005    import java.io.OutputStream;
006    
007    import javax.media.jai.PlanarImage;
008    
009    import org.apache.log4j.Logger;
010    import org.mycore.services.imaging.JAI.imgOperation.MCRJAIImageOp;
011    import org.mycore.services.imaging.JAI.imgOperation.MCRJAIOperationList;
012    
013    public class MCRJAIManipBean {
014            private static Logger LOGGER = Logger.getLogger(MCRJAIManipBean.class);
015            private MCRJAIEncoder encoder;
016            private MCRJAIImageReader reader;
017            
018            protected MCRJAIOperationList imgManipList = new MCRJAIOperationList();
019            
020            public MCRJAIManipBean() {
021                this.reader = new MCRJAIImgMemReader();
022            this.encoder = new MCRJAIJPEGEnc();
023        }
024            
025            public MCRJAIManipBean(MCRJAIImageReader reader, MCRJAIEncoder encoder) {
026                this.reader = reader;
027                this.encoder = encoder;
028            }
029            
030            public void addManipOp(MCRJAIImageOp imgOp){
031                imgManipList.addOp(imgOp);
032            }
033            
034            public void manipAndPost(InputStream imgStream, OutputStream out) throws IOException{
035                PlanarImage image = reader.readImage(imgStream);
036                PlanarImage outImage = imgManipList.executeOp(image);
037                encoder.encode(outImage, out);
038            }
039    }