View Javadoc

1   // Copyright 2003, FreeHEP
2   package org.freehep.graphicsio.raw;
3   
4   import java.awt.image.RenderedImage;
5   import java.io.IOException;
6   
7   import javax.imageio.IIOImage;
8   import javax.imageio.ImageTypeSpecifier;
9   import javax.imageio.ImageWriteParam;
10  import javax.imageio.ImageWriter;
11  import javax.imageio.metadata.IIOMetadata;
12  import javax.imageio.stream.ImageOutputStream;
13  
14  import org.freehep.util.images.ImageUtilities;
15  
16  /**
17   * 
18   * @version $Id: RawImageWriter.java 8584 2006-08-10 23:06:37Z duns $
19   */
20  public class RawImageWriter extends ImageWriter {
21  
22      public RawImageWriter(RawImageWriterSpi originatingProvider) {
23          super(originatingProvider);
24      }
25  
26      public void write(IIOMetadata streamMetadata, IIOImage image,
27              ImageWriteParam param) throws IOException {
28          if (image == null)
29              throw new IllegalArgumentException("image == null");
30  
31          if (image.hasRaster())
32              throw new UnsupportedOperationException("Cannot write rasters");
33  
34          Object output = getOutput();
35          if (output == null)
36              throw new IllegalStateException("output was not set");
37  
38          if (param == null)
39              param = getDefaultWriteParam();
40  
41          ImageOutputStream ios = (ImageOutputStream) output;
42          RenderedImage ri = image.getRenderedImage();
43  
44          RawImageWriteParam rawParam = (RawImageWriteParam) param;
45          byte[] bytes = ImageUtilities.getBytes(ri, rawParam.getBackground(),
46                  rawParam.getCode(), rawParam.getPad());
47          ios.write(bytes);
48      }
49  
50      public IIOMetadata convertStreamMetadata(IIOMetadata inData,
51              ImageWriteParam param) {
52          return null;
53      }
54  
55      public IIOMetadata convertImageMetadata(IIOMetadata inData,
56              ImageTypeSpecifier imageType, ImageWriteParam param) {
57          return null;
58      }
59  
60      public IIOMetadata getDefaultImageMetadata(ImageTypeSpecifier imageType,
61              ImageWriteParam param) {
62          return null;
63      }
64  
65      public IIOMetadata getDefaultStreamMetadata(ImageWriteParam param) {
66          return null;
67      }
68  
69      public ImageWriteParam getDefaultWriteParam() {
70          return new RawImageWriteParam(getLocale());
71      }
72  }