InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IJPEGDecoder.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: jargast
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //
23 // Defines the JPEG decoder interface.
24 //
25 //========================================================================================
26 
27 #ifndef __IJPEGDecoder__
28 #define __IJPEGDecoder__
29 
30 #include "IPMUnknown.h"
31 #include "JPEGCodecID.h"
32 #include "IPMStream.h"
33 
37 {
38 public:
39  JPEGReadInfo()
40  : xSize(0), ySize(0),
41  colorType(0),
42  encoding(0),
43  resolution(0),
44  exifResolution(0),
45  iccProfile(nil),
46  iccProfileSize(0UL),
47  imageResources(nil),
48  imageResourcesSize(0),
49  xmpData(nil),
50  xmpDataSize(0UL),
51  orientation(0)
52  {}
53 
54  unsigned short xSize;
55  unsigned short ySize;
56  short colorType; // 1 = Gray, 3 = RGB, 4 = CMYK, 5 = YCC (pass as input to indicate that no color conversion should occur)
57  short encoding; // 0 = baseline, 1 = sequential, 2 = progressive, 3 = lossless, 4 = hierachical.
58  Fixed resolution;
59  Fixed exifResolution;
60  char* imageResources; // Owned by the JPEG decoder. Don't delete or rely on
61  uint32 imageResourcesSize; // in bytes
62  uint8* iccProfile;
63  uint32 iccProfileSize; // in bytes
64  char* xmpData;
65  uint32 xmpDataSize; // in bytes
66  int16 orientation; // See TIFF spec for documentation on tag #274 (Orientation). Zero indicates unset.
67 };
68 
71 class IJPEGDecoder : public IPMUnknown
72 {
73 
74 public:
75 
82  virtual bool16 Open ( JPEGReadInfo* jpegReadInfo,
83  IPMStream* iPMStream) = 0;
84 
91  virtual bool16 ReadRows (char* rowBuffer, uint32 numberOfRows) = 0;
92 
96  virtual bool16 Close () = 0;
97 };
98 
99 
100 #endif