40 typedef unsigned char uchar;
45 TagTable (
unsigned short t,
const char* d ) : Tag ( t ), Desc ( d ) {}
47 const char*
const Desc;
50 #define MAX_SECTIONS 60
51 #define PSEUDO_IMAGE_MARKER 0x123; // Extra value.
62 int ExifImageLength, ExifImageWidth;
68 float ApertureFNumber;
80 unsigned char * LastExifRefd;
81 int ExifSettingsLength;
82 double FocalplaneXRes;
83 double FocalplaneUnits;
86 int getch ( QFile &infile );
87 int ReadJpegSections ( QFile & infile, ReadMode_t ReadMode );
88 void DiscardData (
void );
89 int Get16u (
void * Short );
90 int Get32s (
void * Long );
91 unsigned Get32u (
void * Long );
92 double ConvertAnyFormat (
void * ValuePtr,
int Format );
93 void ProcessExifDir (
unsigned char * DirStart,
unsigned char * OffsetBase,
unsigned ExifLength );
94 void process_COM (
const uchar * Data,
int length );
95 void process_SOFn (
const uchar * Data,
int marker );
96 int Get16m (
const void * Short );
97 void process_EXIF (
unsigned char * CharBuf,
unsigned int length );
98 int Exif2tm (
struct tm * timeptr,
char * ExifTime );
102 bool scan (
const QString & );
103 QString getCameraMake() {
return CameraMake; }
104 QString getCameraModel() {
return CameraModel; }
105 QString getDateTime() {
return DateTime; }
106 int getOrientation() {
return Orientation; }
107 int getHeight() {
return Height; }
108 int getWidth() {
return Width; }
109 int getIsColor() {
return IsColor; }
110 int getProcess() {
return Process; }
111 int getFlashUsed() {
return FlashUsed; }
112 float getFocalLength() {
return FocalLength; }
113 float getExposureTime() {
return ExposureTime; }
114 float getApertureFNumber() {
return ApertureFNumber; }
115 float getDistance() {
return Distance; }
116 int getWhitebalance() {
return Whitebalance; }
117 int getMeteringMode() {
return MeteringMode; }
118 float getCCDWidth() {
return CCDWidth; }
119 float getExposureBias() {
return ExposureBias; }
120 int getExposureProgram() {
return ExposureProgram; }
121 int getISOequivalent() {
return ISOequivalent; }
122 int getCompressionLevel() {
return CompressionLevel; }
123 QString getUserComment() {
return UserComment; }
124 QString getComment() {
return Comment; }
125 QImage getThumbnail();
126 bool isThumbnailSane();
127 bool isNullThumbnail() {
return !isThumbnailSane(); }
137 void debug_print()
const { qDebug (
"exception: " ); }
144 extern int safe_copy_and_modify (
const char * original_filename,
const char * comment );