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.
This commit is contained in:
Mukund Sivaraman 2012-12-04 13:37:57 +05:30
parent 2e54d88ef2
commit 3477fc0bdd
1 changed files with 30 additions and 25 deletions

View File

@ -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);