[gimp] file-tiff-load: Fix loading of TIFFs containing old-style JPEG images (#688761)



commit 3477fc0bddd9b5697ac16493a8c5f9b7fb46556f
Author: Mukund Sivaraman <muks banu com>
Date:   Tue Dec 4 13:37:57 2012 +0530

    file-tiff-load: Fix loading of TIFFs containing old-style JPEG images (#688761)
    
    This commit also moves the updated section of code, so that based on
    worst_case, the image type and layer type are updated.

 plug-ins/common/file-tiff-load.c |   55 ++++++++++++++++++++-----------------
 1 files changed, 30 insertions(+), 25 deletions(-)
---
diff --git a/plug-ins/common/file-tiff-load.c b/plug-ins/common/file-tiff-load.c
index b4f3f37..e45e9c8 100644
--- a/plug-ins/common/file-tiff-load.c
+++ b/plug-ins/common/file-tiff-load.c
@@ -720,6 +720,36 @@ load_image (const gchar        *filename,
           break;
         }
 
+      /* attach a parasite containing the compression */
+      if (!TIFFGetField (tif, TIFFTAG_COMPRESSION, &tmp))
+        {
+          save_vals.compression = COMPRESSION_NONE;
+        }
+      else
+        {
+          switch (tmp)
+            {
+            case COMPRESSION_NONE:
+            case COMPRESSION_LZW:
+            case COMPRESSION_PACKBITS:
+            case COMPRESSION_DEFLATE:
+            case COMPRESSION_JPEG:
+            case COMPRESSION_CCITTFAX3:
+            case COMPRESSION_CCITTFAX4:
+              save_vals.compression = tmp;
+              break;
+
+            case COMPRESSION_OJPEG:
+              worst_case = TRUE;
+              save_vals.compression = COMPRESSION_JPEG;
+              break;
+
+            default:
+              save_vals.compression = COMPRESSION_NONE;
+              break;
+            }
+        }
+
       if (worst_case)
         {
           image_type = GIMP_RGB;
@@ -791,31 +821,6 @@ load_image (const gchar        *filename,
         }
 #endif
 
-      /* attach a parasite containing the compression */
-      if (!TIFFGetField (tif, TIFFTAG_COMPRESSION, &tmp))
-        {
-          save_vals.compression = COMPRESSION_NONE;
-        }
-      else
-        {
-          switch (tmp)
-            {
-            case COMPRESSION_NONE:
-            case COMPRESSION_LZW:
-            case COMPRESSION_PACKBITS:
-            case COMPRESSION_DEFLATE:
-            case COMPRESSION_JPEG:
-            case COMPRESSION_CCITTFAX3:
-            case COMPRESSION_CCITTFAX4:
-              save_vals.compression = tmp;
-              break;
-
-            default:
-              save_vals.compression = COMPRESSION_NONE;
-              break;
-            }
-        }
-
       parasite = gimp_parasite_new ("tiff-save-options", 0,
                                     sizeof (save_vals), &save_vals);
       gimp_image_attach_parasite (image, parasite);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]