File: plpsddec_8h-source.html

package info (click to toggle)
paintlib 2.6.2-8
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 7,900 kB
  • ctags: 3,875
  • sloc: cpp: 25,209; sh: 10,600; ansic: 1,891; makefile: 119
file content (218 lines) | stat: -rw-r--r-- 12,809 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>paintlib: plpsddec.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.2 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a></div>
<h1>plpsddec.h</h1><div class="fragment"><pre>00001 <span class="comment">/*</span>
00002 <span class="comment">/--------------------------------------------------------------------</span>
00003 <span class="comment">|</span>
00004 <span class="comment">|      $Id: plpsddec_8h-source.html,v 1.4 2004/09/15 15:26:32 uzadow Exp $</span>
00005 <span class="comment">|</span>
00006 <span class="comment">|      Copyright (c) 1996-2002 Ulrich von Zadow</span>
00007 <span class="comment">|</span>
00008 <span class="comment">\--------------------------------------------------------------------</span>
00009 <span class="comment">*/</span>
00010 
00011 <span class="preprocessor">#ifndef INCL_PLPSDDEC</span>
00012 <span class="preprocessor"></span><span class="preprocessor">#define INCL_PLPSDDEC</span>
00013 <span class="preprocessor"></span>
00014 <span class="preprocessor">#ifndef INCL_PLPICDEC</span>
00015 <span class="preprocessor"></span><span class="preprocessor">#include "plpicdec.h"</span>
00016 <span class="preprocessor">#endif</span>
00017 <span class="preprocessor"></span>
00018 <span class="preprocessor">#include &lt;vector&gt;</span>
00019 
00020 <span class="keyword">class </span><a class="code" href="classPLDataSource.html">PLDataSource</a>;
00021 <span class="keyword">class </span><a class="code" href="classPLPoint.html">PLPoint</a>;
00022 
00023 <span class="keyword">struct </span>PLPSDHeader
00024 {
00025   <span class="keywordtype">char</span>     Signature[4];
00026   PLWORD   Version;
00027   PLBYTE   Reserved[6];
00028   PLWORD   Channels;
00029   <span class="keywordtype">int</span>      Rows;
00030   <span class="keywordtype">int</span>      Columns;
00031   PLWORD   BPP;
00032   PLWORD   Mode;
00033 };
00034 
00035 <span class="keyword">struct </span>PLPSDLayerInfo;
00036 <span class="comment"></span>
00037 <span class="comment">//! Photoshop file decoder. Besides having the MakeBmpFromFile interface</span>
00038 <span class="comment">//! that the other decoders have, the photoshop decoder loads the layers</span>
00039 <span class="comment">//! of the image into separate bitmaps so they can be manipulated separately:</span>
00040 <span class="comment">//! &lt;pre&gt;</span>
00041 <span class="comment">//!   vector&amp;lt;PLAnyBmp&amp;gt; Bmp;</span>
00042 <span class="comment">//!   PLAnyBmp BaseBmp);</span>
00043 <span class="comment">//!   Decoder-&amp;gt;OpenFile ("face.psd");</span>
00044 <span class="comment">//!   int NumLayers = Decoder-&amp;gt;GetNumLayers();</span>
00045 <span class="comment">//!   for (int i=0; i&amp;lt;NumLayers; i++)</span>
00046 <span class="comment">//!   {</span>
00047 <span class="comment">//!     GetNextLayer (Bmp[i]);</span>
00048 <span class="comment">//!     LayerOffset = GetLayerOffset();</span>
00049 <span class="comment">//!   }</span>
00050 <span class="comment">//!   GetImage (&amp;BaseBmp);</span>
00051 <span class="comment">//!   Close();</span>
00052 <span class="comment">//! &lt;/pre&gt;</span>
<a name="l00053"></a><a class="code" href="classPLPSDDecoder.html">00053</a> <span class="comment"></span><span class="keyword">class </span><a class="code" href="classPLPSDDecoder.html">PLPSDDecoder</a> : <span class="keyword">public</span> <a class="code" href="classPLPicDecoder.html">PLPicDecoder</a>
00054 {
00055 <span class="keyword">public</span>:<span class="comment"></span>
00056 <span class="comment">  //! Creates a decoder</span>
00057 <span class="comment"></span>  <a class="code" href="classPLPSDDecoder.html">PLPSDDecoder</a>
00058     ();
00059 <span class="comment"></span>
00060 <span class="comment">  //! Destroys a decoder</span>
00061 <span class="comment"></span>  <span class="keyword">virtual</span> ~<a class="code" href="classPLPSDDecoder.html">PLPSDDecoder</a>
00062     ();
00063 <span class="comment"></span>
00064 <span class="comment">  //!</span>
00065 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> Open (<a class="code" href="classPLDataSource.html">PLDataSource</a> * pDataSrc);
00066 <span class="comment"></span>
00067 <span class="comment">  //! Fills the bitmap with the main image. This image is a flattened </span>
00068 <span class="comment">  //! version of the layers.</span>
00069 <span class="comment"></span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classPLPSDDecoder.html#a3">GetImage</a> (<a class="code" href="classPLBmpBase.html">PLBmpBase</a> &amp; pBmp);
00070 <span class="comment"></span>
00071 <span class="comment">  //! Returns number of layers in the image.</span>
00072 <span class="comment"></span>  <span class="keywordtype">int</span> <a class="code" href="classPLPSDDecoder.html#a4">GetNumLayers</a>
00073     ();
00074 <span class="comment"></span>
00075 <span class="comment">  //! Fills the bitmap with the layer data.</span>
00076 <span class="comment"></span>  <span class="keywordtype">void</span> <a class="code" href="classPLPSDDecoder.html#a5">GetNextLayer</a>
00077     ( <a class="code" href="classPLBmp.html">PLBmp</a>&amp; Bmp
00078     );
00079 <span class="comment"></span>
00080 <span class="comment">  //! Returns the origin of the layer data in the image.</span>
00081 <span class="comment"></span>  <a class="code" href="classPLPoint.html">PLPoint</a> <a class="code" href="classPLPSDDecoder.html#a6">GetLayerOffset</a>
00082     ();
00083 
00084 <span class="keyword">private</span>:
00085   <span class="keywordtype">void</span> readHeader
00086     ( <a class="code" href="classPLDataSource.html">PLDataSource</a> * pDataSrc,
00087       PLPSDHeader * pPSDHeader
00088     );
00089 
00090   <span class="keywordtype">void</span> readColorModeData 
00091     ( <a class="code" href="classPLDataSource.html">PLDataSource</a> * pDataSrc
00092     );
00093 
00094   <a class="code" href="classPLBmpInfo.html">PLBmpInfo</a>* createBmpInfo 
00095     ( <span class="keywordtype">int</span> Mode,
00096       <span class="keywordtype">int</span> Height,
00097       <span class="keywordtype">int</span> Width,
00098       <span class="keywordtype">int</span> Channels,
00099       <span class="keyword">const</span> <a class="code" href="classPLPoint.html">PLPoint</a>&amp; Resolution
00100     );
00101 
00102   <span class="keywordtype">void</span> readImageResData 
00103     ( <a class="code" href="classPLDataSource.html">PLDataSource</a> * pDataSrc,
00104       <a class="code" href="classPLPoint.html">PLPoint</a>&amp; Resolution
00105     );
00106 
00107   <span class="keywordtype">void</span> readLayerHeader 
00108     ( <a class="code" href="classPLDataSource.html">PLDataSource</a> * pDataSrc
00109     );
00110 
00111   <span class="keywordtype">void</span> skipLayerData
00112     ( <a class="code" href="classPLDataSource.html">PLDataSource</a> * pDataSrc
00113     );
00114 
00115   <span class="keywordtype">void</span> skipMaskData
00116     ( <a class="code" href="classPLDataSource.html">PLDataSource</a> * pDataSrc
00117     );
00118 
00119   <span class="keywordtype">void</span> readLayer 
00120     ( <a class="code" href="classPLDataSource.html">PLDataSource</a> * pDataSrc, 
00121       <a class="code" href="classPLBmp.html">PLBmp</a>&amp; Bmp,
00122       <span class="keywordtype">int</span> Mode
00123     );
00124 
00125   <span class="keywordtype">void</span> readImageData
00126     ( <a class="code" href="classPLDataSource.html">PLDataSource</a> * pDataSrc,
00127       <a class="code" href="classPLBmpBase.html">PLBmpBase</a> * pBmp,
00128       <span class="keywordtype">int</span> Mode,
00129       <span class="keywordtype">int</span> Height,
00130       <span class="keywordtype">int</span> Width,
00131       <span class="keywordtype">int</span> Channels 
00132     );
00133 
00134   <span class="keywordtype">void</span> traceCompressionMethod
00135     ( PLWORD CompressionMethod
00136     );
00137 
00138   <span class="keywordtype">void</span> readUncompressedImage 
00139     ( <a class="code" href="classPLDataSource.html">PLDataSource</a> * pDataSrc,
00140       <a class="code" href="classPLBmpBase.html">PLBmpBase</a> * pBmp,
00141       <span class="keywordtype">int</span> Mode,
00142       <span class="keywordtype">int</span> Height,
00143       <span class="keywordtype">int</span> Width,
00144       <span class="keywordtype">int</span> Channels 
00145     );
00146 
00147   <span class="keywordtype">void</span> readRLEImage 
00148     ( <a class="code" href="classPLDataSource.html">PLDataSource</a> * pDataSrc,
00149       <a class="code" href="classPLBmpBase.html">PLBmpBase</a> * pBmp,
00150       <span class="keywordtype">int</span> Mode,
00151       <span class="keywordtype">int</span> Height,
00152       <span class="keywordtype">int</span> Width,
00153       <span class="keywordtype">int</span> Channels 
00154     );
00155 
00156   <span class="keywordtype">void</span> readRLEChannel 
00157     ( <a class="code" href="classPLDataSource.html">PLDataSource</a> * pDataSrc,
00158       <a class="code" href="classPLBmpBase.html">PLBmpBase</a> * pBmp,
00159       <span class="keywordtype">int</span> Mode,
00160       <span class="keywordtype">int</span> Height,
00161       <span class="keywordtype">int</span> Width,
00162       <span class="keywordtype">int</span> ChannelNum,
00163       <span class="keywordtype">int</span> * pRowLengths 
00164     );
00165 
00166   <span class="keywordtype">void</span> cleanup
00167     ();
00168 
00169   PLPSDHeader m_PSDHeader;
00170   <a class="code" href="classPLPoint.html">PLPoint</a> m_Resolution;
00171   <a class="code" href="classPLPixel32.html">PLPixel32</a> m_pPal[256];
00172   PLBYTE * m_pMiscDataStart;
00173   <span class="keywordtype">int</span> m_MiscDataSize;
00174   <span class="keywordtype">int</span> m_NumLayers;
00175   <span class="keywordtype">int</span> m_LayersRead;
00176   std::vector&lt;PLPSDLayerInfo *&gt; m_pLayerInfo;
00177 };
00178 
00179 <span class="preprocessor">#endif</span>
00180 <span class="preprocessor"></span>
00181 <span class="comment">/*</span>
00182 <span class="comment">/--------------------------------------------------------------------</span>
00183 <span class="comment">|</span>
00184 <span class="comment">|      $Log: plpsddec_8h-source.html,v $
00184 <span class="comment">|      Revision 1.4  2004/09/15 15:26:32  uzadow
00184 <span class="comment">|      Linux compatibility changes, doc update.
00184 <span class="comment">|</span>
00185 <span class="comment">|      Revision 1.5  2004/06/19 16:49:07  uzadow</span>
00186 <span class="comment">|      Changed GetImage so it works with PLBmpBase</span>
00187 <span class="comment">|</span>
00188 <span class="comment">|      Revision 1.4  2002/11/18 14:45:10  uzadow</span>
00189 <span class="comment">|      Added PNG compression support, fixed docs.</span>
00190 <span class="comment">|</span>
00191 <span class="comment">|      Revision 1.3  2002/08/04 20:08:01  uzadow</span>
00192 <span class="comment">|      Added PLBmpInfo class, ability to extract metainformation from images without loading the whole image and proper greyscale support.</span>
00193 <span class="comment">|</span>
00194 <span class="comment">|      Revision 1.2  2002/03/31 13:36:42  uzadow</span>
00195 <span class="comment">|      Updated copyright.</span>
00196 <span class="comment">|</span>
00197 <span class="comment">|      Revision 1.1  2001/10/21 17:12:40  uzadow</span>
00198 <span class="comment">|      Added PSD decoder beta, removed BPPWanted from all decoders, added PLFilterPixel.</span>
00199 <span class="comment">|</span>
00200 <span class="comment">|</span>
00201 <span class="comment">\--------------------------------------------------------------------</span>
00202 <span class="comment">*/</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Sep 13 16:16:40 2004 for paintlib by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
</a>1.3.2 </small></address>
</body>
</html>