Solving issue 1932: "No EXIF field on TIFF file's thumbnails"
This commit is contained in:
parent
1a6619a035
commit
0c563e6645
@ -849,7 +849,7 @@ void Tag::toRational (int& num, int& denom, int ofs) {
|
|||||||
case RATIONAL: num = (int)sget4 (value+ofs, getOrder()); denom = (int)sget4 (value+ofs+4, getOrder()); break;
|
case RATIONAL: num = (int)sget4 (value+ofs, getOrder()); denom = (int)sget4 (value+ofs+4, getOrder()); break;
|
||||||
case FLOAT: num = 0; denom = 0; break;
|
case FLOAT: num = 0; denom = 0; break;
|
||||||
case UNDEFINED: num = 0; denom = 0; break;
|
case UNDEFINED: num = 0; denom = 0; break;
|
||||||
default: num = 0; denom = 0; // Quick fix for missing cases (INVALID, DOUBLE, OLYUNDEF, SUBDIR)
|
default: num = 0; denom = 0; break; // Quick fix for missing cases (INVALID, DOUBLE, OLYUNDEF, SUBDIR)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -212,6 +212,7 @@ class ExifManager {
|
|||||||
class Interpreter {
|
class Interpreter {
|
||||||
public:
|
public:
|
||||||
Interpreter () {}
|
Interpreter () {}
|
||||||
|
virtual ~Interpreter() {};
|
||||||
virtual std::string toString (Tag* t) { return ""; }
|
virtual std::string toString (Tag* t) { return ""; }
|
||||||
virtual void fromString (Tag* t, const std::string& value) {}
|
virtual void fromString (Tag* t, const std::string& value) {}
|
||||||
};
|
};
|
||||||
|
@ -325,18 +325,21 @@ class UserCommentInterpreter : public Interpreter {
|
|||||||
public:
|
public:
|
||||||
UserCommentInterpreter () {}
|
UserCommentInterpreter () {}
|
||||||
virtual std::string toString (Tag* t) {
|
virtual std::string toString (Tag* t) {
|
||||||
char buffer[1024];
|
char *buffer = new char[t->getCount()];
|
||||||
if (!strncmp((char*)t->getValue(), "ASCII\0\0\0",8))
|
if (!strncmp((char*)t->getValue(), "ASCII\0\0\0",8))
|
||||||
strncpy (buffer, (char*)t->getValue()+8, t->getCount()-8);
|
strncpy (buffer, (char*)t->getValue()+8, t->getCount()-8);
|
||||||
else
|
else
|
||||||
buffer[0]=0;
|
buffer[0]=0;
|
||||||
return buffer;
|
std::string retVal(buffer);
|
||||||
|
delete [] buffer;
|
||||||
|
return retVal;
|
||||||
}
|
}
|
||||||
virtual void fromString (Tag* t, const std::string& value) {
|
virtual void fromString (Tag* t, const std::string& value) {
|
||||||
char buffer[1024];
|
char *buffer = new char[t->getCount()];
|
||||||
memcpy (buffer, "ASCII\0\0\0", 8);
|
memcpy (buffer, "ASCII\0\0\0", 8);
|
||||||
strcpy (buffer+8, value.c_str());
|
strcpy (buffer+8, value.c_str());
|
||||||
t->fromString (buffer, value.size() + 9);
|
t->fromString (buffer, value.size() + 9);
|
||||||
|
delete [] buffer;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
UserCommentInterpreter userCommentInterpreter;
|
UserCommentInterpreter userCommentInterpreter;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user