Andrew Murray
562458cdd3
Added _save_netpbm comment
2017-03-08 19:41:18 +11:00
wiredfool
9f88a55fa3
Merge pull request #2442 from hugovk/test-xvthumb
...
Test XVThumbImagePlugin for correctness
2017-03-06 18:53:58 +00:00
wiredfool
1a8f88986d
Merge pull request #2441 from hugovk/test-bufrstub
...
Test BufrStubImagePlugin for correctness
2017-03-06 18:53:13 +00:00
hugovk
94c07f68fb
Python 3 fix
2017-03-04 23:28:08 +02:00
hugovk
5cf56e796f
Refactor to reuse _accept
2017-03-04 20:03:34 +02:00
hugovk
a0f50d7305
Get integers, not single-item lists of integers
2017-03-04 19:58:49 +02:00
hugovk
277d8123a4
Only need to read 4 bytes
2017-03-04 16:39:03 +02:00
hugovk
4ece1ae78a
Python 3 fix
2017-03-04 13:52:14 +02:00
wiredfool
5071ea2a0e
Merge pull request #2425 from radarhere/tests
...
Added tests
2017-03-03 15:44:33 +00:00
Andrew Murray
7467d1e010
Changed comment to be 80 characters or less
2017-03-03 21:57:30 +11:00
Andrew Murray
798fde57ca
Removed unused imports
2017-03-03 21:38:19 +11:00
Andrew Murray
0b93853fd8
Removed duplicate imports
2017-03-03 21:38:19 +11:00
Andrew Murray
bef530cb09
Changed None comparison to is
2017-03-03 21:38:19 +11:00
Andrew Murray
257bc8bd4f
Added tests
2017-03-03 19:45:55 +11:00
Andrew Murray
d92b1678fe
Corrected ImageDraw floodfill exception type
2017-03-03 19:45:55 +11:00
Hugo
49815f8d4a
Test pixar for similarity
2017-02-28 08:27:53 +02:00
Hugo
cb34b686a5
Merge pull request #1822 from radarhere/unused
...
Remove unused imports
2017-02-26 10:05:19 +02:00
Andrew Murray
f9a99652e4
Replaced KeyError catch with dictionary get method
2017-02-25 13:49:05 +11:00
wiredfool
0ee223aa7a
Merge pull request #1390 from radarhere/deprecated_27
...
Removed use of spaces in TIFF kwargs, deprecated in 2.7
2017-02-22 10:13:45 +00:00
wiredfool
a4ef743b0f
Merge pull request #2220 from jdufresne/image-draw-dep
...
Remove long deprecated ImageDraw methods
2017-02-22 10:12:05 +00:00
wiredfool
8421a076ac
Merge pull request #2253 from jdufresne/devnull
...
Send unwanted subprocess output to /dev/null
2017-02-22 10:10:03 +00:00
hugovk
0764b2b5e9
Update error message
2017-02-22 08:20:45 +02:00
Andrew Murray
16c8b01026
Replaced broken URL with web.archive.org URL
2017-02-18 15:53:01 +11:00
Andrew Murray
c2cfd8e7e4
Changed http URL to https
2017-02-18 15:44:22 +11:00
wiredfool
f0cebebf32
Clarify that draft is only implemented for JPEG and PCD
2017-02-17 06:22:40 -08:00
ces42
8fb44a2bee
More explicit error message when saving to a file with invalid extension ( #2399 )
...
* more explicit error message when saving to a file with invalid extension + test
2017-02-17 13:39:16 +00:00
Leonid Bloch
28b818974e
Allow to save tiff stacks from separate images
...
This is a quick solution that will allow to save tiff stacks from
separate images, e.g. from Numpy arrays.
Previously, tiff stacks could be saved only from multiframe images.
This behavior is similar to what is possible now with GIFs.
Note however, that for correct results, all the appended images should
have the same encoder{info,config} properties.
Example:
import numpy as np
from PIL import Image
a = np.ones((100,100,100), dtype=np.uint8)
imlist = []
for m in a:
imlist.append(Image.fromarray(m))
imlist[0].save("test.tif", compression="tiff_deflate", save_all=True,
append_images=imlist[1:])
(Should result in a 100-frame, 100x100 tiff stack.)
Signed-off-by: Leonid Bloch <leonid.bloch@esrf.fr>
2017-02-17 00:57:00 +02:00
Hugo
53e5702557
Update http to https
2017-02-14 11:27:02 +02:00
hugovk
07af06bf8c
Expose and test radial_gradient
2017-01-29 18:44:24 +02:00
hugovk
3ead178d18
flake8
2017-01-29 18:38:06 +02:00
hugovk
47b1c66961
Expose and test linear_gradient
2017-01-29 18:17:31 +02:00
Jon Dufresne
cecdb2af61
Send unwanted subprocess output to /dev/null
...
Avoids unnecessary creation of temporary files as well as unnecessarily
storing process output in memory. The temporary files would sometimes
remain and not be cleaned up.
2017-01-26 17:31:29 -08:00
wiredfool
2df28a6601
Merge pull request #2347 from radarhere/icc_profile
...
Moved iCCP chunk before PLTE chunk when saving as PNG
2017-01-26 14:26:25 +00:00
wiredfool
a62f2c5b44
Merge pull request #2365 from SemanticsOS/lambdafu/dpiresolution
...
Default to inch-interpretation for missing ResolutionUnit in TiffImagePlugin
2017-01-26 14:22:32 +00:00
wiredfool
a71ba1a1c6
comments
2017-01-26 05:55:18 -08:00
wiredfool
a69c37738a
Look in a different location for the tk intepreter on pypy fixes #2376
2017-01-26 05:32:40 -08:00
Andrew Murray
f0480de118
Restricted PNG encoderinfo chunks to valid values when saving
2017-01-21 16:57:03 +11:00
Andrew Murray
361f579579
Moved iCCP chunk before PLTE chunk when saving as PNG
2017-01-21 13:32:22 +11:00
Marcus Brinkmann
8a9bd2cdcd
Default to inch-interpretation for missing ResolutionUnit in TiffImagePlugin.
2017-01-19 17:24:28 +01:00
Alexandru Chirila
b001e5d4ab
Ensure that the err_code
variable is initialized before using.
2017-01-18 14:22:14 +02:00
Andrew Murray
c168f01111
Removed imports used only by comments
2017-01-18 20:06:47 +11:00
Andrew Murray
97a2d42dac
Removed unused print_function imports
2017-01-18 20:06:21 +11:00
Andrew Murray
58b5c9187d
Replaced absolute PIL imports with relative imports ( #2349 )
2017-01-17 13:22:18 +00:00
wiredfool
c1b510c72c
Merge pull request #2307 from radarhere/contextmanagers
...
Added context managers
2017-01-17 13:20:41 +00:00
wiredfool
f6dd290560
Merge pull request #2343 from radarhere/registered_extensions
...
Expose registered file extensions in Image
2017-01-16 11:40:02 +00:00
Jarkko Pöyry
3bdd15e55e
Make mode descriptor cache initialization thread-safe.
...
Initializing mode descriptor cache in-place is racy and may cause a thread to
observe a partially constructed cache if another thread is pre-empted while
it's still constructing the cache. In this change, the mode descriptor cache is
constructed into a local variable instead and then set globally in a single
atomic operation, preventing any possibility of observing an incomplete cache.
2017-01-10 23:49:29 +02:00
Luis G
67c1258cfc
Expose registered file extensions
...
This adds a new method in Image (registered_extensions) that exposes the
internal EXTENSION dictionary to consumers of the library
2017-01-07 11:32:16 +11:00
Andrew Murray
1fb00976f5
Removed TODO resolved in #1121
2017-01-07 10:14:49 +11:00
Jerome Leclanche
3ac9ab6fa2
Remove an unnecessary import
2017-01-07 08:12:33 +11:00
wiredfool
296fb5fe1d
4.1.0.dev0 version bump
2017-01-02 04:06:48 -08:00
wiredfool
a021d4978d
4.0.0 version bump
2017-01-01 20:20:06 +00:00
wiredfool
ccccd725af
Merge pull request #2329 from wiredfool/pcd_hack_refactor
...
Refactor out postprocessing hack to load_end in PcdImageFile
2017-01-01 19:07:23 +00:00
wiredfool
599ec6bcd6
Removed #hack
2017-01-01 12:59:48 +00:00
wiredfool
8dd19e6c33
refactor out postprocessing hack to load_end in PcdImageFile
2017-01-01 12:04:59 +00:00
wiredfool
fed4b52171
Disable fastpath when using center or translate
2017-01-01 11:13:25 +00:00
wiredfool
f286d8bb34
Documentation param order to match actual order
2017-01-01 11:10:39 +00:00
Marcus Brinkmann
90077b3975
Add center and translate option to Image.rotate.
2016-12-31 19:01:09 +00:00
wiredfool
c7df6287fa
Merge pull request #2262 from wiredfool/zero_size
...
Allow 0 size images, Fixes #2259
2016-12-31 16:35:14 +00:00
wiredfool
69bea50810
Allow 0 size images, Fixes #2259
2016-12-31 13:19:29 +00:00
wiredfool
31c204eae4
Loop cleanup, python 3 compatibility
2016-12-31 12:29:10 +00:00
Mickael B
597ab45d4d
[SGI] Save uncompressed SGI/BW/RGB/RGBA files
...
Save feature added to SgiImagePlugin.py, uncompressed method only
2016-12-31 12:29:10 +00:00
Andrew Murray
a06dd59df7
Added context managers
2016-12-28 09:54:10 +11:00
wiredfool
944a470a79
Merge pull request #2312 from wiredfool/pr_2298
...
List of individual frame durations for saving animated gifs. #2298
2016-12-27 12:00:40 +00:00
wiredfool
f36a04570f
Merge pull request #2313 from wiredfool/pr_2196
...
Unified different GIF optimize conditions #2196 , Test for #2196
2016-12-27 11:53:50 +00:00
wiredfool
e530f2a228
Added tuple option for durations
2016-12-27 03:04:37 -08:00
wiredfool
87092ad4f8
can pass list of integer to set different duration for each frame when saving GIF
2016-12-27 02:44:05 -08:00
Andrew Murray
8c2a857c2e
Removed shebang line from OleFileIO
2016-12-25 20:18:50 +01:00
Jakub Wilk
8524c18329
Remove executable bit from OleFileIO.py
2016-12-25 12:05:38 +01:00
wiredfool
80b78be21a
Merge pull request #2199 from jdufresne/dep-olefile
...
Remove vendored version of olefile Python package in favor of upstream
2016-12-13 20:12:29 +00:00
wiredfool
55f7a736a4
Merge pull request #2234 from radarhere/print
...
Updated comments to use print as a function
2016-12-13 20:00:25 +00:00
wiredfool
ba5f9b88da
Merge pull request #2223 from wiredfool/handles_eof
...
Removed the handles_eof flag in the decoder, as there are no users of it
2016-12-13 19:48:55 +00:00
Andrew Murray
41e492b026
Removed use of spaces in TIFF kwargs, deprecated in 2.7
2016-12-09 20:44:42 +11:00
Hugo
837d583b15
Merge pull request #2275 from wiredfool/issue_2272
...
Update Maxblock heuristic (fixes #2272 )
2016-12-04 21:38:22 +02:00
wiredfool
7e2bd28a7c
Fix for issue 2272, CMYK images miss the heuristic for the maxblock buffer scaling
2016-12-03 14:45:45 +00:00
wiredfool
86606022c5
Merge pull request #2193 from SemanticsOS/lambdafu/libtiff-icc
...
Update info.icc_profile when using libtiff reader.
2016-12-03 13:44:26 +00:00
hugovk
adfda1a5a4
Python 3 compatibility
2016-11-30 16:50:44 +02:00
hugovk
880464f46c
Only save relevant sizes
2016-11-30 16:41:43 +02:00
hugovk
b341898c7f
Allow 256x256 sizes
2016-11-30 16:00:14 +02:00
hugovk
43fc9c9b59
flake8
2016-11-30 14:51:30 +02:00
hugovk
cc89d95f02
Fix saving 256x256 icons
2016-11-30 14:50:53 +02:00
wiredfool
e0b957240b
Merge pull request #2087 from cskau/patch-1
...
Fixes TIFFImagePlugin ICC color profile saving.
2016-11-29 19:33:52 +00:00
wiredfool
0271887115
Merge pull request #2256 from radarhere/imageops
...
Doc: Improved description of ImageOps.deform resample parameter
2016-11-27 16:28:03 +00:00
glexey
0116c9240e
EMF: support negative bounding box coordinates ( #2249 )
...
* EMF: support negative bounding box coordinates
Similar to placeable WMF, bounding box coordinates
should be interpreted as signed integer, otherwise
opening EMF file with negative (x0,y0) fails.
* Basic load tests for WMF and EMF formats
* WMF/WMF tests: just test open(), not load()
Not sure why load() fails on Debian build. Well, at least we can test
open().
* WMF/EMF: Unpack signed integers using unpack()
* WMF/EMF: Compare to reference PNG rendering
* EMF/WMF comparison: use assert_image_similar()
* Use similarity epsilon 0.5 for WMF, as vector rendering looks different across Windows platforms
* Trigger rebuild
2016-11-27 16:03:51 +00:00
Andrew Murray
14cfec0b49
Added decompression bomb check to WalImageFile
2016-11-26 11:50:56 +11:00
Andrew Murray
87de178e0b
Added context manager when opening files in WalImageFile
2016-11-26 11:29:20 +11:00
Andrew Murray
67be3a9eda
Added future print_function imports
2016-11-26 11:05:56 +11:00
Andrew Murray
4ed31e8ef7
Updated comments to use print as a function
2016-11-26 11:02:44 +11:00
Andrew Murray
378dbb2f9f
Improved description of method parameter
2016-11-26 10:57:51 +11:00
Hugo
fb54b1da2e
Merge pull request #2248 from uploadcare/use-_new
...
Use Image._new() instead of _makeself()
2016-11-24 08:32:13 +02:00
homm
d4784bffb2
return copy of the image if size matches
2016-11-24 03:30:36 +03:00
homm
14734b1d97
remove _makeself deprecated method
2016-11-24 03:03:31 +03:00
Hugo
6fa7f3fc67
Merge pull request #2241 from wiredfool/sunrle
...
SunImagePlugin fixes
2016-11-23 16:10:17 +02:00
wiredfool
212508b3f2
Review comments
2016-11-23 05:33:02 -08:00
homm
5773fd8396
_makeself → _new
2016-11-23 14:41:43 +03:00
Jon Dufresne
52b1f46b12
Deprecate vendored version of olefile Python package in favor of upstream
...
Pillow now requires the olefile Python package through setup.py.
This removes Pillow's maintenance of this library by instead relying on
and reusing the upstream version. No longer need to regularly update the
vendored package and docs. olefile bug fixes and features can go
directly upstream.
During travis tests, now installs Pillow package before tests; this will
also install all dependencies (currently, only olefile).
2016-11-22 18:17:31 -08:00
wiredfool
620d082457
Merge pull request #2240 from uploadcare/draft-min-scale
...
Use minimal scale for jpeg drafts
2016-11-22 15:22:59 +00:00
wiredfool
d3cdaabf7c
Merge pull request #2186 from timgraham/escape-sequences-bytes
...
Fix "invalid escape sequence" bytestring warnings in Python 3.6
2016-11-22 12:34:50 +00:00
Jon Dufresne
dbe9f85c7d
Drop support for Python 2.6
...
* Drop unittest2 requirement
* Use set literals
* Use dict/set comprehension
* Use str.format() automatic numbering
2016-11-22 04:23:55 -08:00
wiredfool
8b4cd7eb7a
Merge pull request #2226 from jdufresne/font-file-close
...
Use a context manager in FontFile.save() to ensure file is always closed
2016-11-22 12:04:28 +00:00
wiredfool
87b8d2894a
Merge pull request #2227 from radarhere/fpname
...
Fixed bug in saving to fp-objects in Python >= 3.4
2016-11-22 12:03:25 +00:00
wiredfool
806e5343d8
Merge pull request #2232 from jdufresne/font-close-file
...
Close file after finished reading in ImageFont._load_pilfont()
2016-11-22 11:59:36 +00:00
wiredfool
816c74ac81
Fix SunImagePlugin.
...
SunImagePlugin now loads all the images here:
https://samples.libav.org/image-samples/sunrast/
without LOAD_TRUNCATED_IMAGES set, verified visually.
Prior to this commit:
Could not open 32bpp.ras
Could not open 4bpp.ras
Could not open gray.ras
Could not open lena-1bit-rle.sun
Could not open lena-24bit-rle.sun
Could not open lena-8bit-raw.sun
Could not open lena-8bit-rle.sun
Could not open MARBLES.SUN
2016-11-22 02:52:18 -08:00
wiredfool
372b1abe69
expand tile element names, don't attempt to mmap if args has < 3 elements
2016-11-22 02:46:54 -08:00
homm
55fca4857c
protect .draft() from second call
2016-11-22 04:28:04 +03:00
homm
8f6b7b258b
use minimal scale for jpeg downscaling
2016-11-22 04:00:49 +03:00
wiredfool
318ff7d332
fixed support for hopper.ras, and other RGB sun raster files
2016-11-19 19:43:43 -08:00
Andrew Murray
5d37103d01
Corrected unfinished sentence
2016-11-19 10:55:08 +11:00
Andrew Murray
8758866f47
Fixed typo
2016-11-19 10:45:33 +11:00
Jon Dufresne
85ec6eb251
Close file after finished reading in ImageFont._load_pilfont()
...
Fixes some "ResourceWarning: unclosed file ..." when running tests with
warnings enabled.
2016-11-17 07:46:54 -08:00
Andrew Murray
38fd77ca7d
Fixed bug in saving to fp-objects in Python >= 3.4
2016-11-15 20:13:25 +11:00
Jon Dufresne
25ac9a20e4
Use a context manager in FontFile.save() to ensure file is always closed
2016-11-14 21:18:57 -08:00
Jon Dufresne
ffa5bc2726
Use generator expressions instead of list comprehension
...
Avoids unnecessary temporary lists in memory.
2016-11-14 18:11:15 -08:00
wiredfool
2a74940817
Merge pull request #2215 from jdufresne/img-palette-close
...
Close file after reading in ImagePalette.load()
2016-11-14 22:12:08 +00:00
Andrew Murray
c3fe5d4313
Changed behaviour of default box argument for paste method to match docs
2016-11-15 06:37:40 +11:00
wiredfool
90760a5f30
Removed the handles_eof flag in the decoder, as there are no users of it
2016-11-14 07:47:02 -08:00
Jake Merdich
05b5382a60
Add support for another type of BMP bitfield
...
There's an example file [here](https://dl.dropboxusercontent.com/u/11688373/Gompei%20(1).bmp ), though I don't have the rights to commit it here.
2016-11-14 00:31:23 -05:00
Jon Dufresne
a5d6519d74
Remove long deprecated ImageDraw methods
...
Deprecated in 89ccf66ff7
since Sep 29,
2015, version 3.0.0.
2016-11-13 10:08:47 -08:00
Jon Dufresne
6bc8fdd342
Close file after reading in ImagePalette.load()
...
Fixes some "ResourceWarning: unclosed file ..." when running tests with
warnings enabled.
2016-11-11 16:59:32 -08:00
wiredfool
650062bc75
Merge pull request #2197 from radarhere/rangelen
...
Replaced range(len())
2016-11-11 17:03:38 +00:00
wiredfool
9ee19f2aa9
Merge pull request #2182 from wiredfool/pyside_segfault
...
Fix for ImageQt Segfault
2016-11-11 17:00:27 +00:00
Andrew Murray
8fc90fe4fa
Replaced range(len())
2016-11-06 12:38:59 +11:00
Andrew Murray
2ba2763f0b
Replaced range(len()) with enumerate
2016-11-05 19:09:14 +11:00
Clement Skau
caf53b05ec
Fixes TIFFImagePlugin ICC color profile saving.
...
In the TIFF code saving icc_profile is conditional on tag_v2 being set which doesn't make sense to me. I believe this is merely an indentation typo.
I've been trying to save TIFFs with im.info['icc_profile'] set and compression=raw, but unfortunately this results in TIFFs without ICC color profiles.
With the attached patch TIFFs with said conditions will be saved with the profile set in im.info['icc_profile'].
Note: There are a number of different conditions that need to be met for code to succeed in saving with the profile since it branches between using libtiff and ImageFile._save(..), and the libtiff code does not currently save the ICC color profile.
For instance setting compression=tiff_lzw will result in using libtiff and no profile will be saved.
2016-11-05 15:01:39 +09:00
Andrew Murray
a51dc7dcaf
Unified different GIF optimize conditions
2016-11-05 13:32:02 +11:00
Marcus Brinkmann
66de02685f
Update info.icc_profile when using libtiff reader.
2016-11-04 16:37:49 +01:00
Hugo
48b72eac34
Merge pull request #2184 from jdufresne/isinstance
...
Replace type() equality checks with isinstance
2016-11-01 19:07:06 +02:00
Tim Graham
792df283d9
Fix "invalid escape sequence" bytestring warnings in Python 3.6
2016-10-31 11:48:59 -04:00
Tim Graham
02b5ce0479
Remove redundant space in PIL.Image ImportError message
2016-10-31 11:09:40 -04:00
Jon Dufresne
e44bb42ae9
Replace type() equality checks with isinstance
2016-10-31 06:41:43 -07:00
wiredfool
8582144e0e
Fix for issue #1370 , Segfault using QImages due to not retaining the data
2016-10-27 14:11:06 -07:00
wiredfool
37d97968e4
Merge pull request #2172 from jdufresne/bytes-warning
...
Fix BytesWarnings discovered while running tests
2016-10-25 10:07:53 +01:00
Jon Dufresne
7992d2a65a
Fix BytesWarning discovered while running tests
...
Discovered using the command:
python -b -m nose -vx Tests/test_*.py
2016-10-22 12:35:44 -07:00
Matt R. Wilson
74f751037f
Divide floats to eliminate deprecation warning.
...
When running python 2.7 with the `-3` flag the following warning occurs
> .../PIL/Image.py:48: DeprecationWarning: classic int division
MAX_IMAGE_PIXELS = int(1024 * 1024 * 1024 / 4 / 3)
Simply changing the 4 and 3 to be floats instead eliminates the warning
and, because the result is cast, the resulting `int` stays the same for
python 2 and 3.
2016-10-22 11:58:13 -04:00
Andrew Murray
f59b708f3a
Fixed typo
2016-10-07 20:43:54 +11:00
wiredfool
35e1237b7e
3.5.0.dev0 Dev Version bump
2016-10-04 00:18:33 -07:00
homm
c5e111e6b8
allow lists as arguments for Image.new
2016-10-04 03:06:35 +03:00
wiredfool
ac5a212cee
3.4.0 Release Version bump
2016-10-03 08:00:29 -07:00
wiredfool
22ff3f4358
Vulnerable map function is not called on windows
2016-10-03 07:42:48 -07:00
wiredfool
445451c0b9
Added common check for size tuple errors
2016-10-03 07:27:02 -07:00
wiredfool
1a43da7a8b
Removed 'Debugging' open_ppm call that didn't check file provided parameters for sanity
2016-10-03 07:27:02 -07:00
wiredfool
d9fc1848a2
Merge pull request #2140 from SemanticsOS/lambdafu/tiff-multipage
...
Add TIFF save_all writer.
2016-10-03 06:31:39 -07:00
wiredfool
2db3f00e92
Merge pull request #2141 from wiredfool/tiff_fd
...
Move libtiff fd duplication to _load_libtiff
2016-10-03 06:03:50 -07:00
wiredfool
f8e6953e6e
Merge pull request #2133 from wiredfool/gif-optimize-perf
...
Speed up GIF save optimization step
2016-10-03 06:03:12 -07:00
wiredfool
9440764863
Merge pull request #2131 from wiredfool/imagecms-segfault
...
Fix for ImageCms Segfault
2016-10-03 06:02:39 -07:00
wiredfool
ab29e2fa24
Merge pull request #2138 from wiredfool/issue_1077
...
Make Image.crop an immediate operation, not lazy.
2016-10-03 06:01:34 -07:00
wiredfool
41cbd4f4d3
Only duplicate the file descriptor when acually passing it to
...
libtiff. From: Sebastian Krause <sebastian@realpath.org>
2016-09-29 22:14:51 +01:00
Eric Soroos
95b50bf611
Make Image.crop an immediate operation, not lazy. Fixes #1077
2016-09-29 13:28:24 -07:00
wiredfool
4a90e8f75b
Merge pull request #2024 from uploadcare/fix-empty-exif-tags
...
Skip empty values in ImageFileDirectory
2016-09-29 08:24:44 -07:00
wiredfool
0902120f09
Merge pull request #2139 from SemanticsOS/lambdafu/multipage-tiff-palette
...
Force reloading palette when using mmap in ImageFile.
2016-09-29 08:20:25 -07:00
Marcus Brinkmann
92c7337df0
Add TIFF save_all writer.
2016-09-29 17:05:33 +02:00