about summary refs log tree commit diff
path: root/converter
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2014-06-29 01:24:38 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2014-06-29 01:24:38 +0000
commit77eb12eb2edf32eb91a1e7ff11422500cca6c8ef (patch)
treeab1f8e5e6212620e35168e81f6d3868d8e7f1b8a /converter
parent107c741ae0d790bdc8a5d2cb7504b54e88cd6761 (diff)
downloadnetpbm-mirror-77eb12eb2edf32eb91a1e7ff11422500cca6c8ef.tar.gz
netpbm-mirror-77eb12eb2edf32eb91a1e7ff11422500cca6c8ef.tar.xz
netpbm-mirror-77eb12eb2edf32eb91a1e7ff11422500cca6c8ef.zip
Release 10.35.93
git-svn-id: http://svn.code.sf.net/p/netpbm/code/super_stable@2217 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'converter')
-rw-r--r--converter/other/exif.c23
-rw-r--r--converter/other/exif.h3
2 files changed, 20 insertions, 6 deletions
diff --git a/converter/other/exif.c b/converter/other/exif.c
index 19f108a7..f9592d6c 100644
--- a/converter/other/exif.c
+++ b/converter/other/exif.c
@@ -86,6 +86,9 @@ static int BytesPerFormat[] = {0,1,1,2,4,8,1,1,2,4,8,4,8};
 
 #define TAG_ORIENTATION       0x0112
 
+#define TAG_XRESOLUTION       0x011A
+#define TAG_YRESOLUTION       0x011B
+
 #define TAG_EXPOSURETIME      0x829A
 #define TAG_FNUMBER           0x829D
 
@@ -472,15 +475,25 @@ ProcessExifDir(unsigned char *  const ExifData,
         switch(Tag){
 
             case TAG_MAKE:
-                strncpy(ImageInfoP->CameraMake, (char*)ValuePtr, 31);
+                STRSCPY(ImageInfoP->CameraMake, (char*)ValuePtr);
                 break;
 
             case TAG_MODEL:
-                strncpy(ImageInfoP->CameraModel, (char*)ValuePtr, 39);
+                STRSCPY(ImageInfoP->CameraModel, (char*)ValuePtr);
                 break;
 
+            case TAG_XRESOLUTION:
+                ImageInfoP->XResolution = 
+                    ConvertAnyFormat(ValuePtr, Format);
+                break;
+    
+            case TAG_YRESOLUTION:
+                ImageInfoP->YResolution = 
+                    ConvertAnyFormat(ValuePtr, Format);
+                break;
+    
             case TAG_DATETIME_ORIGINAL:
-                strncpy(ImageInfoP->DateTime, (char*)ValuePtr, 19);
+                STRSCPY(ImageInfoP->DateTime, (char*)ValuePtr);
                 ImageInfoP->DatePointer = (char*)ValuePtr;
                 break;
 
@@ -838,8 +851,8 @@ ShowImageInfo(ImageInfo_t * const ImageInfoP)
     if (ImageInfoP->DateTime[0]){
         fprintf(stderr, "Date/Time    : %s\n",ImageInfoP->DateTime);
     }
-    fprintf(stderr, "Resolution   : %d x %d\n",
-            ImageInfoP->Width, ImageInfoP->Height);
+    fprintf(stderr, "Resolution   : %f x %f\n",
+            ImageInfoP->XResolution, ImageInfoP->YResolution);
     if (ImageInfoP->Orientation > 1){
 
         /* Only print orientation if one was supplied, and if its not
diff --git a/converter/other/exif.h b/converter/other/exif.h
index e5825e12..4630988f 100644
--- a/converter/other/exif.h
+++ b/converter/other/exif.h
@@ -16,7 +16,8 @@ typedef struct {
     char  CameraMake   [32];
     char  CameraModel  [40];
     char  DateTime     [20];
-    int   Height, Width;
+    float XResolution;
+    float YResolution;
     int   Orientation;
     int   IsColor;
     int   FlashUsed;