52 import javax.imageio.ImageIO; 53 import javax.imageio.ImageTypeSpecifier; 54 import javax.imageio.ImageWriteParam; 55 import javax.imageio.ImageWriter; 56 import javax.imageio.metadata.IIOMetadata; 57 import javax.imageio.spi.ImageWriterSpi; 58 import javax.imageio.stream.ImageOutputStream; 59 import javax.imageio.event.IIOWriteProgressListener; 60 import javax.imageio.event.IIOWriteWarningListener; 61 62 63 import javax.imageio.plugins.bmp.BMPImageWriteParam; 64 import com.sun.imageio.plugins.common.ImageUtil; 65 import com.sun.imageio.plugins.common.I18N; 66 67 /** 68 * The Java Image IO plugin writer for encoding a binary RenderedImage into 69 * a BMP format. 70 * 71 * The encoding process may clip, subsample using the parameters 72 * specified in the <code>ImageWriteParam</code>. 73 * 74 * @see javax.imageio.plugins.bmp.BMPImageWriteParam 75 */ 76 public class BMPImageWriter extends ImageWriter implements BMPConstants { 77 /** The output stream to write into */ 78 private ImageOutputStream stream = null; 79 private ByteArrayOutputStream embedded_stream = null; 80 private int version; 81 private int compressionType; 82 private boolean isTopDown; 83 private int w, h; 84 private int compImageSize = 0; 85 private int[] bitMasks; 86 private int[] bitPos; 87 private byte[] bpixels; 88 private short[] spixels; 89 private int[] ipixels; 90 91 /** Constructs <code>BMPImageWriter</code> based on the provided 92 * <code>ImageWriterSpi</code>. 93 */ 94 public BMPImageWriter(ImageWriterSpi originator) { 95 super(originator); 96 } 97 98 public void setOutput(Object output) { 99 super.setOutput(output); // validates output 100 if (output != null) { 101 if (!(output instanceof ImageOutputStream)) 102 throw new IllegalArgumentException(I18N.getString("BMPImageWriter0")); 103 this.stream = (ImageOutputStream)output; 104 stream.setByteOrder(ByteOrder.LITTLE_ENDIAN); 105 } else 106 this.stream = null; 107 } 108 109 public ImageWriteParam getDefaultWriteParam() { 110 return new BMPImageWriteParam(); 111 } 112 | 52 import javax.imageio.ImageIO; 53 import javax.imageio.ImageTypeSpecifier; 54 import javax.imageio.ImageWriteParam; 55 import javax.imageio.ImageWriter; 56 import javax.imageio.metadata.IIOMetadata; 57 import javax.imageio.spi.ImageWriterSpi; 58 import javax.imageio.stream.ImageOutputStream; 59 import javax.imageio.event.IIOWriteProgressListener; 60 import javax.imageio.event.IIOWriteWarningListener; 61 62 63 import javax.imageio.plugins.bmp.BMPImageWriteParam; 64 import com.sun.imageio.plugins.common.ImageUtil; 65 import com.sun.imageio.plugins.common.I18N; 66 67 /** 68 * The Java Image IO plugin writer for encoding a binary RenderedImage into 69 * a BMP format. 70 * 71 * The encoding process may clip, subsample using the parameters 72 * specified in the {@code ImageWriteParam}. 73 * 74 * @see javax.imageio.plugins.bmp.BMPImageWriteParam 75 */ 76 public class BMPImageWriter extends ImageWriter implements BMPConstants { 77 /** The output stream to write into */ 78 private ImageOutputStream stream = null; 79 private ByteArrayOutputStream embedded_stream = null; 80 private int version; 81 private int compressionType; 82 private boolean isTopDown; 83 private int w, h; 84 private int compImageSize = 0; 85 private int[] bitMasks; 86 private int[] bitPos; 87 private byte[] bpixels; 88 private short[] spixels; 89 private int[] ipixels; 90 91 /** Constructs {@code BMPImageWriter} based on the provided 92 * {@code ImageWriterSpi}. 93 */ 94 public BMPImageWriter(ImageWriterSpi originator) { 95 super(originator); 96 } 97 98 public void setOutput(Object output) { 99 super.setOutput(output); // validates output 100 if (output != null) { 101 if (!(output instanceof ImageOutputStream)) 102 throw new IllegalArgumentException(I18N.getString("BMPImageWriter0")); 103 this.stream = (ImageOutputStream)output; 104 stream.setByteOrder(ByteOrder.LITTLE_ENDIAN); 105 } else 106 this.stream = null; 107 } 108 109 public ImageWriteParam getDefaultWriteParam() { 110 return new BMPImageWriteParam(); 111 } 112 |