]> granicus.if.org Git - imagemagick/blobdiff - coders/tiff.c
(no commit message)
[imagemagick] / coders / tiff.c
index 4270ea07c9a8a69f6117529ba7d88940448f5af3..5bf4489fb96a9cf71c7056ea3f6a8b1505593105 100644 (file)
@@ -1856,15 +1856,17 @@ static void TIFFIgnoreTags(TIFF *tiff)
   Image
    *image;
 
-  TIFFFieldInfo
-    *ignore;
-
   register ssize_t
     i;
 
   size_t
     count;
 
+  TIFFFieldInfo
+    *ignore;
+
+  if (TIFFGetReadProc(tiff) != TIFFReadBlob)
+    return;
   image=(Image *)TIFFClientdata(tiff);
   tags=GetImageArtifact(image,"tiff:ignore-tags");
   if (tags == (const char *) NULL)
@@ -1983,7 +1985,6 @@ ModuleExport size_t RegisterTIFFImage(void)
   entry->format_type=ImplicitFormatType;
   entry->seekable_stream=MagickTrue;
   entry->thread_support=NoThreadSupport;
-  entry->semaphore=AcquireSemaphoreInfo();
   entry->description=ConstantString("Raw CCITT Group4");
   entry->mime_type=ConstantString("image/tiff");
   entry->module=ConstantString("TIFF");
@@ -1996,7 +1997,6 @@ ModuleExport size_t RegisterTIFFImage(void)
   entry->endian_support=MagickTrue;
   entry->seekable_stream=MagickTrue;
   entry->thread_support=NoThreadSupport;
-  entry->semaphore=AcquireSemaphoreInfo();
   entry->description=ConstantString("Pyramid encoded TIFF");
   entry->mime_type=ConstantString("image/tiff");
   entry->module=ConstantString("TIFF");
@@ -2010,7 +2010,6 @@ ModuleExport size_t RegisterTIFFImage(void)
   entry->seekable_stream=MagickTrue;
   entry->stealth=MagickTrue;
   entry->thread_support=NoThreadSupport;
-  entry->semaphore=AcquireSemaphoreInfo();
   entry->description=ConstantString(TIFFDescription);
   if (*version != '\0')
     entry->version=ConstantString(version);
@@ -2026,7 +2025,6 @@ ModuleExport size_t RegisterTIFFImage(void)
   entry->endian_support=MagickTrue;
   entry->seekable_stream=MagickTrue;
   entry->thread_support=NoThreadSupport;
-  entry->semaphore=AcquireSemaphoreInfo();
   entry->description=ConstantString(TIFFDescription);
   if (*version != '\0')
     entry->version=ConstantString(version);
@@ -2042,7 +2040,6 @@ ModuleExport size_t RegisterTIFFImage(void)
   entry->endian_support=MagickTrue;
   entry->seekable_stream=MagickTrue;
   entry->thread_support=NoThreadSupport;
-  entry->semaphore=AcquireSemaphoreInfo();
   entry->description=ConstantString("Tagged Image File Format (64-bit)");
   if (*version != '\0')
     entry->version=ConstantString(version);
@@ -2867,6 +2864,8 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info,
         (image_info->type != OptimizeType))
       (void) SetImageType(image,image_info->type,exception);
     compression=UndefinedCompression;
+    if (image->compression != JPEGCompression)
+      compression=image->compression;
     if (image_info->compression != UndefinedCompression)
       compression=image_info->compression;
     switch (compression)
@@ -3073,8 +3072,6 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info,
                 }
           }
       }
-    if (photometric == PHOTOMETRIC_RGB)
-      (void) TransformImageColorspace(image,sRGBColorspace,exception);
     switch (image->endian)
     {
       case LSBEndian:
@@ -3282,7 +3279,7 @@ static MagickBooleanType WriteTIFFImage(const ImageInfo *image_info,
     if (rows_per_strip < 1)
       rows_per_strip=1;
     if ((image->rows/rows_per_strip) >= (1UL << 15))
-      rows_per_strip=(image->rows >> 15);
+      rows_per_strip=(uint32) (image->rows >> 15);
     (void) TIFFSetField(tiff,TIFFTAG_ROWSPERSTRIP,rows_per_strip);
     if ((image->resolution.x != 0.0) && (image->resolution.y != 0.0))
       {