package org.jboss.media.engine.image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.Vector;
import javax.imageio.ImageIO;
import org.jboss.media.engine.MediaPluginGraph;
import org.jboss.media.engine.MediaPublisher;
import org.jboss.media.engine.MediaPublisherMBean;
public class ImageFileMediaPublisher
extends MediaPublisher
implements MediaPublisherMBean, ImageFileMediaPublisherMBean
{
MediaPluginGraph m_graph;
public ImageFileMediaPublisher()
{
}
public void publish() throws Exception
{
log.info("Reading file " + getFileName());
BufferedImage image = null;
try
{
File imgFile = new File(getFileName());
image = (BufferedImage) ImageIO.read(imgFile);
}
catch (IOException e)
{
log.error("Could not read file " + getFileName());
return;
}
log.info("processing image...");
processImage(image);
log.info("Finished processing image");
log.info("Sending the output to file " + getContext());
File outputFile = new File(getContext());
String suffix = getContext().substring(getContext().length()-3,getContext().length());
log.info("Suffix is ." + suffix);
ImageIO.write(image, suffix, outputFile);
}
private void processImage(BufferedImage image)
{
Vector plugins = m_graph.getPluginVector();
for (Iterator iter = plugins.iterator(); iter.hasNext();)
{
ImagePluginSupport element = (ImagePluginSupport) iter.next();
element.process(image);
}
}
public void stop()
{
}
public void addPluginGraph(MediaPluginGraph pg)
{
m_graph = pg;
}
}