diff --git a/docs/installation.rst b/docs/installation.rst index efde6e931df..0b04b134e9b 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -162,7 +162,7 @@ Many of Pillow's features require external libraries: * **libtiff** provides compressed TIFF functionality - * Pillow has been tested with libtiff versions **3.x** and **4.0-4.3** + * Pillow has been tested with libtiff versions **3.x** and **4.0-4.4** * **libfreetype** provides type related services diff --git a/src/libImaging/TiffDecode.c b/src/libImaging/TiffDecode.c index f818f19d502..3bb444c804c 100644 --- a/src/libImaging/TiffDecode.c +++ b/src/libImaging/TiffDecode.c @@ -815,11 +815,11 @@ ImagingLibTiffMergeFieldInfo( // custom fields added with ImagingLibTiffMergeFieldInfo are only used for // decoding, ignore readcount; - int readcount = 1; + int readcount = is_var_length ? TIFF_VARIABLE : 1; // we support writing a single value, or a variable number of values - int writecount = 1; + int writecount = is_var_length ? TIFF_VARIABLE : 1; // whether the first value should encode the number of values. - int passcount = 0; + int passcount = (is_var_length && field_type != TIFF_ASCII) ? 1 : 0; TIFFFieldInfo info[] = { {key, @@ -831,14 +831,6 @@ ImagingLibTiffMergeFieldInfo( passcount, "CustomField"}}; - if (is_var_length) { - info[0].field_writecount = -1; - } - - if (is_var_length && field_type != TIFF_ASCII) { - info[0].field_passcount = 1; - } - n = sizeof(info) / sizeof(info[0]); // Test for libtiff 4.0 or later, excluding libtiff 3.9.6 and 3.9.7 diff --git a/winbuild/build_prepare.py b/winbuild/build_prepare.py index 3d9391321a6..a963205c156 100644 --- a/winbuild/build_prepare.py +++ b/winbuild/build_prepare.py @@ -143,9 +143,9 @@ def cmd_msbuild( "libs": [r"*.lib"], }, "libtiff": { - "url": "https://download.osgeo.org/libtiff/tiff-4.3.0.tar.gz", - "filename": "tiff-4.3.0.tar.gz", - "dir": "tiff-4.3.0", + "url": "https://download.osgeo.org/libtiff/tiff-4.4.0.tar.gz", + "filename": "tiff-4.4.0.tar.gz", + "dir": "tiff-4.4.0", "build": [ cmd_cmake("-DBUILD_SHARED_LIBS:BOOL=OFF"), cmd_nmake(target="clean"),