diff options
Diffstat (limited to 'src/jake2/imageio/PCX.java')
-rw-r--r-- | src/jake2/imageio/PCX.java | 229 |
1 files changed, 0 insertions, 229 deletions
diff --git a/src/jake2/imageio/PCX.java b/src/jake2/imageio/PCX.java deleted file mode 100644 index eb71465..0000000 --- a/src/jake2/imageio/PCX.java +++ /dev/null @@ -1,229 +0,0 @@ -/* - * Created on Nov 18, 2003 - * - */ -package jake2.imageio; - -import java.nio.ByteBuffer; -import java.nio.ByteOrder; - -/** - * @author cwei - * - */ -public class PCX { - - public static final int HEADER_SIZE = 128; - - /** - * <code> - typedef struct - { - char manufacturer; - char version; - char encoding; - char bits_per_pixel; - unsigned short xmin,ymin,xmax,ymax; - unsigned short horzRes,vertRes; - unsigned char palette[48]; - char reserved; - char color_planes; - unsigned short bytes_per_line; - unsigned short palette_type; - char filler[58]; - unsigned char data; // unbounded - } pcx_t; - - </code> - */ - public static class Header { - - // size of byte arrays - static final int PALETTE_SIZE = 48; - static final int FILLER_SIZE = 58; - - byte manufacturer; - byte version; - byte encoding; - byte bitsPerPixel; - int xmin, ymin, xmax, ymax; // unsigned short - int horzRes, vertRes; // unsigned short - byte[] palette; //unsigned byte - byte reserved; - byte colorPlanes; - int bytesPerLine; // unsigned short - int paletteType; // unsigned short - byte[] filler; - - - - public Header(byte[] headerBytes) { - if (headerBytes == null || headerBytes.length != 128) { - throw new IllegalArgumentException("invalid quake2 pcx header"); - } - - ByteBuffer b = ByteBuffer.wrap(headerBytes); - // is stored as little endian - b.order(ByteOrder.LITTLE_ENDIAN); - - // fill header - manufacturer = b.get(); - version = b.get(); - encoding = b.get(); - bitsPerPixel = b.get(); - xmin = b.getShort() & 0xffff; - ymin = b.getShort() & 0xffff; - xmax = b.getShort() & 0xffff; - ymax = b.getShort() & 0xffff; - horzRes = b.getShort() & 0xffff; - vertRes = b.getShort() & 0xffff; - b.get(palette = new byte[PALETTE_SIZE]); - reserved = b.get(); - colorPlanes = b.get(); - bytesPerLine = b.getShort() & 0xffff; - paletteType = b.getShort() & 0xffff; - b.get(filler = new byte[FILLER_SIZE]); - - // check some attributes - checkHeader(); - } - - private void checkHeader() { - - if (this.getManufacturer() != 0x0a - || this.getVersion() != 5 - || this.getEncoding() != 1 - || this.getBitsPerPixel() != 8 - || this.getXmax() >= 640 - || this.getYmax() >= 480) { - throw new IllegalArgumentException("invalid quake2 pcx header"); - } - } - - /** - * @return - */ - public byte getBitsPerPixel() { - return bitsPerPixel; - } - - /** - * @return - */ - public int getBytesPerLine() { - return bytesPerLine; - } - - /** - * @return - */ - public byte getColorPlanes() { - return colorPlanes; - } - - /** - * @return - */ - public byte getEncoding() { - return encoding; - } - - /** - * @return - */ - public byte[] getFiller() { - return filler; - } - - /** - * @return - */ - public int getHeight() { - return ymax - ymin + 1; - } - - /** - * @return - */ - public byte getManufacturer() { - return manufacturer; - } - - /** - * @return - */ - public byte[] getPalette() { - return palette; - } - - /** - * @return - */ - public int getPaletteType() { - return paletteType; - } - - /** - * @return - */ - public byte getReserved() { - return reserved; - } - - /** - * @return - */ - public byte getVersion() { - return version; - } - - /** - * @return - */ - public int getWidth() { - return xmax - xmin + 1; - } - - /** - * @return - */ - public int getXmax() { - return xmax; - } - - /** - * @return - */ - public int getXmin() { - return xmin; - } - - /** - * @return - */ - public int getYmax() { - return ymax; - } - - /** - * @return - */ - public int getYmin() { - return ymin; - } - /** - * @return - */ - public int getHorzRes() { - return horzRes; - } - - /** - * @return - */ - public int getVertRes() { - return vertRes; - } - - } -}
\ No newline at end of file |