• 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  QByteArray 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
  •     interface
  •     library
  •   kspeech
  •   ktexteditor
  • kabc
  • kate
  • kcmshell
  • kdecore
  • kded
  • kdefx
  • kdeprint
  • kdesu
  • kdeui
  • kdoctools
  • khtml
  • kimgio
  • kinit
  • kio
  •   bookmarks
  •   httpfilter
  •   kfile
  •   kio
  •   kioexec
  •   kpasswdserver
  •   kssl
  • kioslave
  •   http
  • kjs
  • kmdi
  •   kmdi
  • knewstuff
  • kparts
  • krandr
  • kresources
  • kspell2
  • kunittest
  • kutils
  • kwallet
  • libkmid
  • libkscreensaver
Generated for kimgio by doxygen 1.8.13
This website is maintained by Timothy Pearson.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. |