• 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 
18 class TQImage;
19 class TQImageIO;
20 
21 extern "C" {
22 void kimgio_rgb_read(TQImageIO *);
23 void kimgio_rgb_write(TQImageIO *);
24 }
25 
26 
27 class RLEData : public TQMemArray<uchar> {
28 public:
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; }
35 private:
36  uint m_offset;
37 };
38 
39 
40 class RLEMap : public TQMap<RLEData, uint> {
41 public:
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; }
46 private:
47  uint m_counter;
48  uint m_offset;
49 };
50 
51 
52 class SGIImage {
53 public:
54  SGIImage(TQImageIO *);
55  ~SGIImage();
56 
57  bool readImage(TQImage&);
58  bool writeImage(TQImage&);
59 
60 private:
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.1
This website is maintained by Timothy Pearson.