diff options
author | Wu-cheng Li <wuchengli@google.com> | 2010-01-31 22:34:33 +0800 |
---|---|---|
committer | Wu-cheng Li <wuchengli@google.com> | 2010-02-04 16:26:16 +0800 |
commit | 574d52d26f44b600cdab3d3361eaa5f6dd9d7a4d (patch) | |
tree | 6641ca57e134cb2adec419041c701df211e43336 /main.c | |
parent | a39920ca4b96a456511fa32ba90c77f119a274c3 (diff) | |
download | jhead-574d52d26f44b600cdab3d3361eaa5f6dd9d7a4d.tar.gz |
Change focal length string to rational.
bug:2375989
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -517,6 +517,13 @@ static int addKeyValueDouble(char** buf, int bufLen, const char* key, double val return addKeyValueString(buf, bufLen, key, valueStr); } +// Returns new buffer length. Rational value will be appended as "numerator/denominator". +static int addKeyValueRational(char** buf, int bufLen, const char* key, rat_t value) { + char valueStr[25]; + snprintf(valueStr, sizeof(valueStr), "%u/%u", value.num, value.denom); + return addKeyValueString(buf, bufLen, key, valueStr); +} + static jstring getAttributes(JNIEnv *env, jobject jobj, jstring jfilename) { #ifdef SUPERDEBUG @@ -571,8 +578,8 @@ static jstring getAttributes(JNIEnv *env, jobject jobj, jstring jfilename) bufLen = addKeyValueInt(&buf, bufLen, "Flash", ImageInfo.FlashUsed); if (bufLen == 0) return NULL; - if (ImageInfo.FocalLength){ - bufLen = addKeyValueInt(&buf, bufLen, "FocalLength", ImageInfo.FocalLength); + if (ImageInfo.FocalLength.num != 0 && ImageInfo.FocalLength.denom != 0) { + bufLen = addKeyValueRational(&buf, bufLen, "FocalLength", ImageInfo.FocalLength); if (bufLen == 0) return NULL; } |