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

kimgio

  • kimgio
rgb.h
1// kimgio module for SGI images
2//
3// Copyright (C) 2004 Melchior FRANZ <mfranz@kde.org>
4//
5// This program is free software; you can redistribute it and/or
6// modify it under the terms of the Lesser GNU General Public License as
7// published by the Free Software Foundation; either version 2 of the
8// License, or (at your option) any later version.
9
10
11#ifndef KIMG_RGB_H
12#define KIMG_RGB_H
13
14#include <tqmap.h>
15#include <tqptrvector.h>
16
17
18class TQImage;
19class TQImageIO;
20
21extern "C" {
22void kimgio_rgb_read(TQImageIO *);
23void kimgio_rgb_write(TQImageIO *);
24}
25
26
27class RLEData : public TQMemArray<uchar> {
28public:
29 RLEData() {}
30 RLEData(const uchar *d, uint l, uint o) : m_offset(o) { duplicate(d, l); }
31 bool operator<(const RLEData&) const;
32 void write(TQDataStream& s);
33 void print(TQString) const; // TODO remove
34 uint offset() { return m_offset; }
35private:
36 uint m_offset;
37};
38
39
40class RLEMap : public TQMap<RLEData, uint> {
41public:
42 RLEMap() : m_counter(0), m_offset(0) {}
43 uint insert(const uchar *d, uint l);
44 TQPtrVector<RLEData> vector();
45 void setBaseOffset(uint o) { m_offset = o; }
46private:
47 uint m_counter;
48 uint m_offset;
49};
50
51
52class SGIImage {
53public:
54 SGIImage(TQImageIO *);
55 ~SGIImage();
56
57 bool readImage(TQImage&);
58 bool writeImage(TQImage&);
59
60private:
61 enum { NORMAL, DITHERED, SCREEN, COLORMAP }; // colormap
62 TQImageIO *m_io;
63 TQIODevice *m_dev;
64 TQDataStream m_stream;
65
66 TQ_UINT8 m_rle;
67 TQ_UINT8 m_bpc;
68 TQ_UINT16 m_dim;
69 TQ_UINT16 m_xsize;
70 TQ_UINT16 m_ysize;
71 TQ_UINT16 m_zsize;
72 TQ_UINT32 m_pixmin;
73 TQ_UINT32 m_pixmax;
74 char m_imagename[80];
75 TQ_UINT32 m_colormap;
76
77 TQ_UINT32 *m_starttab;
78 TQ_UINT32 *m_lengthtab;
79 TQByteArray m_data;
80 TQByteArray::Iterator m_pos;
81 RLEMap m_rlemap;
82 TQPtrVector<RLEData> m_rlevector;
83 uint m_numrows;
84
85 bool readData(TQImage&);
86 bool getRow(uchar *dest);
87
88 void writeHeader();
89 void writeRle();
90 void writeVerbatim(const TQImage&);
91 bool scanData(const TQImage&);
92 uint compact(uchar *, uchar *);
93 uchar intensity(uchar);
94};
95
96#endif
97

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.