• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • kimgio
 

kimgio

  • kimgio
pcx.h
1/* This file is part of the KDE project
2 Copyright (C) 2002-2003 Nadeem Hasan <nhasan@kde.org>
3
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the Lesser GNU General Public
6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version.
8*/
9
10#ifndef PCX_H
11#define PCX_H
12
13#include <tqglobal.h>
14#include <tqdatastream.h>
15#include <tqcolor.h>
16
17class TQImageIO;
18
19extern "C"
20{
21 void kimgio_pcx_read( TQImageIO * );
22 void kimgio_pcx_write( TQImageIO * );
23}
24
25class RGB
26{
27 public:
28 RGB() { }
29
30 RGB( const TQRgb color )
31 {
32 r = tqRed( color );
33 g = tqGreen( color );
34 b = tqBlue( color );
35 }
36
37 TQ_UINT8 r;
38 TQ_UINT8 g;
39 TQ_UINT8 b;
40};
41
42class Palette
43{
44 public:
45 Palette() { }
46
47 void setColor( int i, const TQRgb color )
48 {
49 rgb[ i ] = RGB( color );
50 }
51
52 TQRgb color( int i ) const
53 {
54 return tqRgb( rgb[ i ].r, rgb[ i ].g, rgb[ i ].b );
55 }
56
57 struct RGB rgb[ 16 ];
58};
59
60class PCXHEADER
61{
62 public:
63 PCXHEADER();
64
65 inline int width() const { return ( XMax-XMin ) + 1; }
66 inline int height() const { return ( YMax-YMin ) + 1; }
67 inline bool isCompressed() const { return ( Encoding==1 ); }
68
69 TQ_UINT8 Manufacturer; // Constant Flag, 10 = ZSoft .pcx
70 TQ_UINT8 Version; // Version information
71 // 0 = Version 2.5 of PC Paintbrush
72 // 2 = Version 2.8 w/palette information
73 // 3 = Version 2.8 w/o palette information
74 // 4 = PC Paintbrush for Windows(Plus for
75 // Windows uses Ver 5)
76 // 5 = Version 3.0 and > of PC Paintbrush
77 // and PC Paintbrush +, includes
78 // Publisher's Paintbrush . Includes
79 // 24-bit .PCX files
80 TQ_UINT8 Encoding; // 1 = .PCX run length encoding
81 TQ_UINT8 Bpp; // Number of bits to represent a pixel
82 // (per Plane) - 1, 2, 4, or 8
83 TQ_UINT16 XMin;
84 TQ_UINT16 YMin;
85 TQ_UINT16 XMax;
86 TQ_UINT16 YMax;
87 TQ_UINT16 HDpi;
88 TQ_UINT16 YDpi;
89 Palette ColorMap;
90 TQ_UINT8 Reserved; // Should be set to 0.
91 TQ_UINT8 NPlanes; // Number of color planes
92 TQ_UINT16 BytesPerLine; // Number of bytes to allocate for a scanline
93 // plane. MUST be an EVEN number. Do NOT
94 // calculate from Xmax-Xmin.
95 TQ_UINT16 PaletteInfo; // How to interpret palette- 1 = Color/BW,
96 // 2 = Grayscale ( ignored in PB IV/ IV + )
97 TQ_UINT16 HScreenSize; // Horizontal screen size in pixels. New field
98 // found only in PB IV/IV Plus
99 TQ_UINT16 VScreenSize; // Vertical screen size in pixels. New field
100 // found only in PB IV/IV Plus
101} TDE_PACKED;
102
103#endif // PCX_H

kimgio

Skip menu "kimgio"
  • Main Page
  • File List
  • Related Pages

kimgio

Skip menu "kimgio"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdeioslave
  •   http
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for kimgio by doxygen 1.9.4
This website is maintained by Timothy Pearson.