// Copyright 2002, FreeHEP.
package org.freehep.graphicsio.emf.gdi;
import java.io.IOException;
import org.freehep.graphicsio.emf.EMFConstants;
import org.freehep.graphicsio.emf.EMFInputStream;
import org.freehep.graphicsio.emf.EMFOutputStream;
/**
* EMF BitmapInfoHeader
*
* @author Mark Donszelmann
* @version $Id: BitmapInfoHeader.java,v 1.4 2009-08-17 21:44:44 murkle Exp $
*/
public class BitmapInfoHeader implements EMFConstants {
public static final int size = 40;
private int width;
private int height;
private int planes;
private int bitCount;
private int compression;
private int sizeImage;
private int xPelsPerMeter;
private int yPelsPerMeter;
private int clrUsed;
private int clrImportant;
public BitmapInfoHeader(int width, int height, int bitCount,
int compression, int sizeImage, int xPelsPerMeter,
int yPelsPerMeter, int clrUsed, int clrImportant) {
this.width = width;
this.height = height;
this.planes = 1;
this.bitCount = bitCount;
this.compression = compression;
this.sizeImage = sizeImage;
this.xPelsPerMeter = xPelsPerMeter;
this.yPelsPerMeter = yPelsPerMeter;
this.clrUsed = clrUsed;
this.clrImportant = clrImportant;
}
public BitmapInfoHeader(EMFInputStream emf) throws IOException {
emf.readDWORD();
// System.out.println(len);
width = emf.readLONG();
height = emf.readLONG();
planes = emf.readWORD();
bitCount = emf.readWORD();
compression = emf.readDWORD();
sizeImage = emf.readDWORD();
xPelsPerMeter = emf.readLONG();
yPelsPerMeter = emf.readLONG();
clrUsed = emf.readDWORD();
clrImportant = emf.readDWORD();
}
public void write(EMFOutputStream emf) throws IOException {
emf.writeDWORD(size);
emf.writeLONG(width);
emf.writeLONG(height);
emf.writeWORD(planes);
emf.writeWORD(bitCount);
emf.writeDWORD(compression);
emf.writeDWORD(sizeImage);
emf.writeLONG(xPelsPerMeter);
emf.writeLONG(yPelsPerMeter);
emf.writeDWORD(clrUsed);
emf.writeDWORD(clrImportant);
}
@Override
public String toString() {
return " size: " + size + "\n" + " width: " + width + "\n"
+ " height: " + height + "\n" + " planes: " + planes
+ "\n" + " bitCount: " + bitCount + "\n"
+ " compression: " + compression + "\n" + " sizeImage: "
+ sizeImage + "\n" + " xPelsPerMeter: " + xPelsPerMeter
+ "\n" + " yPelsPerMeter: " + yPelsPerMeter + "\n"
+ " clrUsed: " + clrUsed + "\n" + " clrImportant: "
+ clrImportant;
}
}