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 FLOAT: 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 {
|
||||
public:
|
||||
Interpreter () {}
|
||||
virtual ~Interpreter() {};
|
||||
virtual std::string toString (Tag* t) { return ""; }
|
||||
virtual void fromString (Tag* t, const std::string& value) {}
|
||||
};
|
||||
|
@ -325,18 +325,21 @@ class UserCommentInterpreter : public Interpreter {
|
||||
public:
|
||||
UserCommentInterpreter () {}
|
||||
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))
|
||||
strncpy (buffer, (char*)t->getValue()+8, t->getCount()-8);
|
||||
else
|
||||
buffer[0]=0;
|
||||
return buffer;
|
||||
std::string retVal(buffer);
|
||||
delete [] buffer;
|
||||
return retVal;
|
||||
}
|
||||
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);
|
||||
strcpy (buffer+8, value.c_str());
|
||||
t->fromString (buffer, value.size() + 9);
|
||||
delete [] buffer;
|
||||
}
|
||||
};
|
||||
UserCommentInterpreter userCommentInterpreter;
|
||||
|
Loading…
x
Reference in New Issue
Block a user