Commit Graph

965 Commits

Author SHA1 Message Date
nulano
0bcc7be89b xcb screengrab docs and fixes 2020-03-24 19:46:40 +11:00
nulano
f9c74825a6 xcb screengrab fixes 2020-03-24 19:40:54 +11:00
nulano
3c39e6fcf6 xcb screengrab support 2020-03-24 19:29:44 +11:00
Peter Rowlands
8373c38840 Drop alpha channels when computing frame delta 2020-03-15 20:02:10 +09:00
Andrew Murray
ca5a81ef27 Added reading of earlier ImageMagick EXIF data 2020-03-14 00:04:58 +11:00
Andrew Murray
9f61be4c72
Merge branch 'master' into apng 2020-03-09 23:29:40 +11:00
Andrew Murray
e41cfade29 Add JPEG comment to info dictionary 2020-03-07 06:57:29 +11:00
Hugo van Kemenade
3f9b615349
Merge pull request #4404 from orlnub123/bugfix/thumbnail
Fix size calculation of Image.thumbnail()
2020-03-06 00:33:03 +02:00
Hugo van Kemenade
0f7ed2d35f
Merge pull request #4435 from radarhere/close_images
Close exclusively opened images
2020-03-06 00:27:46 +02:00
Hugo van Kemenade
974233be45
Merge pull request #4438 from jdufresne/warning
Warn on typos passed to features.check()
2020-03-02 21:26:17 +02:00
Hugo van Kemenade
64a9e0c660
Merge branch 'master' into apng 2020-02-29 17:40:17 +02:00
Andrew Murray
1c1ad65a96
Merge pull request #4424 from hugovk/fix-im-long-name
Fix saving IM images in dir with long path
2020-02-27 20:27:44 +11:00
Andrew Murray
9ba25f8135 Trim end of name, keeping ext 2020-02-26 20:15:23 +11:00
Peter Rowlands
9b72f0513c Adjust is_animated behavior
- Make is_animated APNG behavior consistent with other Pillow formats
- is_animated will be true when n_frames is greater than 1 (for APNG
  this depends on animation frame count + presence or absence of a
  default image)
2020-02-23 15:14:06 +11:00
Peter Rowlands
00fcc53a1d Fix lint errors 2020-02-23 15:14:06 +11:00
Peter Rowlands
9f4716ff30 Fix split fdAT chunk sequence error 2020-02-23 15:14:06 +11:00
Peter Rowlands
35148b99c1 Fix comment
[ci skip]
2020-02-23 15:14:06 +11:00
Peter Rowlands
bdcf980570 Fix pypy test failures 2020-02-23 15:14:06 +11:00
Peter Rowlands
512b060a53 Fix tox -e lint errors 2020-02-23 15:14:06 +11:00
Peter Rowlands
67e3ccffeb Add APNG support
See #3483

Adds support for reading APNG files and seeking through frames,
and adds basic support for writing APNG files.
2020-02-23 15:11:08 +11:00
orlnub123
84c33abaa0 Make key an argument 2020-02-22 12:30:10 +00:00
Hugo
a82ba5b2c2 Save IM: use only filename as name, ditch potentially overlong path 2020-02-22 13:00:25 +02:00
orlnub123
8f21d0ddf0 Improve rounding 2020-02-21 23:38:38 +00:00
Andrew Murray
a8c0794107 Allow saving of zero quality JPEG images 2020-02-21 22:05:44 +11:00
Dag Wästberg
2e02500fa6 change function names to snake_case 2020-02-19 19:38:53 +11:00
Dag Wästberg
23a61b00b5 fix formatting 2020-02-19 19:37:02 +11:00
Dag Wästberg
23c9da5264 add Overlay chop 2020-02-19 19:34:13 +11:00
Dag Wästberg
705140cc2c add hardlight and softlight chops 2020-02-19 19:30:59 +11:00
Dag Wästberg
319f5409fe fix formatting 2020-02-19 19:28:27 +11:00
Dag Wästberg
e18e96d736 fix formatting 2020-02-19 19:28:27 +11:00
Dag Wästberg
13c1b7070d add Overlay chop 2020-02-19 19:24:36 +11:00
Dag Wästberg
5e5dfbad81 add hardlight and softlight chops 2020-02-19 19:23:09 +11:00
Jon Dufresne
c057ad1535 Warn on typos passed to features.check()
If the feature isn't one of the recognized types, a UserWarning is
emitted.
2020-02-18 19:48:48 -08:00
Andrew Murray
dd8b0de666 Close excusively opened images 2020-02-18 20:49:05 +11:00
Andrew Murray
6e130e9f63 Close file pointer in __main__ 2020-02-17 22:12:46 +11:00
Andrew Murray
bd7242228b Fixed saving bug in __main__ 2020-02-17 22:11:24 +11:00
Hugo
85e06057e2 The 'Name: ' field must be less than length 100 2020-02-17 00:57:58 +02:00
orlnub123
2e716de63d Floor the size 2020-02-16 21:26:17 +11:00
orlnub123
e226e4ed64 Don't upscale if the image is smaller than the size 2020-02-16 21:25:51 +11:00
orlnub123
e9ef1d236d Fix size calculation of Image.thumbnail() 2020-02-16 21:25:51 +11:00
nulano
309291563a return None if display profile not found in ImageCms.get_display_profile 2020-02-16 21:06:13 +11:00
Andrew Murray
b0b3097018 Explicity return None
Co-Authored-By: Hugo van Kemenade <hugovk@users.noreply.github.com>
2020-02-16 20:35:39 +11:00
Andrew Murray
466da649f5 get_display_profile is only supported on Windows 2020-02-16 20:35:39 +11:00
Hugo van Kemenade
0e993c4740
Merge pull request #4334 from radarhere/outline_width
Allow explicit zero width to hide outline
2020-02-15 14:30:12 +02:00
Andrew Murray
8acf77a042 For effiency, set newline character outside of loop 2020-02-15 22:13:10 +11:00
Andrew Murray
f958e2f8ed Return strings or bytes from ContainerIO according to the file object mode 2020-02-15 22:13:10 +11:00
Jon Dufresne
e817ed0d3e Correct str/bytes mixup in ContainerIO
Image data is expected to be read in bytes mode, not text mode so
ContainerIO should return bytes in all methods. The passed in file
handler is expected to be opened in bytes mode (as TarIO already does).
2020-02-15 22:13:10 +11:00
Alexander
54f3dc6006 Math functions return int in Python 3 2020-02-08 00:34:53 +03:00
Alex
767f39fc75
Add support for more ExifIFD tags
Added support for:  "AmbientTemperature", "Humidity", "Pressure", "WaterDepth", "Acceleration" and "CameraElevationAngle"
2020-01-30 12:51:03 +01:00
Hugo van Kemenade
29d36c9260
Merge pull request #4388 from jdufresne/str-bytes-shim
Remove leftover Python 2 compatibility shim
2020-01-29 14:41:59 +02:00
Hugo van Kemenade
659f73d0be
Merge pull request #4389 from jdufresne/make-bytes
Remove unnecessary make_bytes() function
2020-01-27 15:55:14 +02:00
Alexander Karpinsky
5965437402
Merge pull request #4370 from uploadcare/jpeg-multiple-app13
Handle multiple and malformed JPEG APP13 markers
2020-01-27 15:46:36 +03:00
Alexander Karpinsky
fd03a68c1a
Update comment
Co-Authored-By: Andrew Murray <3112309+radarhere@users.noreply.github.com>
2020-01-27 15:18:02 +03:00
Jon Dufresne
c84c736e5b Remove unnecessary make_bytes() function
The function was introduced in 65112bad7e
to handle the differences between Python 2 & 3 byte handling. Now that
Python 3 supports byte formatting, can drop the unnecessary
compatibility shim in favor of native features.
2020-01-26 15:16:04 -08:00
Jon Dufresne
d57d02e827 Remove leftover Python 2 compatibility shim
In Python 3, __str__ should not return bytes.
2020-01-26 14:46:27 -08:00
Hugo van Kemenade
892aec306b
Merge pull request #4385 from jdufresne/try-block
Limit try block to code expected to raise an exception
2020-01-26 20:04:39 +02:00
Jon Dufresne
bd71374cd2 Limit try block to code expected to raise an exception
In the off chance that the additional code in decoder()/encoder() raise
a KeyError or AttributeError, a bug could be hidden.
2020-01-26 07:10:22 -08:00
Jon Dufresne
63729766c4 Remove unnecessary coerce to float
In Python 3, the division operator is floating point division. No longer
need to coerce integers to floating point numbers before division.
2020-01-26 06:33:18 -08:00
Andrew Murray
6a7ac38c6c extents are not used by map_buffer 2020-01-26 13:22:23 +11:00
Alexander
dcd0cd9129 update dict instead of ignoring 2020-01-19 14:53:46 +03:00
Alexander
f55eb73934 handle Photoshop chunks which can't be processed 2020-01-19 03:37:43 +03:00
Alexander
3841c96ec6 Cleanup code a bit 2020-01-19 03:15:37 +03:00
Andrew Murray
56f30ef792 Allow explicit zero width to hide outline 2020-01-08 21:55:15 +11:00
Andrew Murray
46b4caa8e3 7.1.0.dev0 version bump 2020-01-02 20:45:59 +11:00
Andrew Murray
37b1974d30 7.0.0 version bump 2020-01-02 15:33:48 +11:00
Andrew Murray
138bd714f5 Raise an error for an invalid number of bands in FPX image 2020-01-02 15:20:24 +11:00
Andrew Murray
4203845a24
Merge pull request #4320 from uploadcare/rgb2l-rounding-error
Fix rounding error on RGB to L conversion
2020-01-01 20:09:34 +11:00
Andrew Murray
e8bb2dd93e Allow string comment when saving GIF 2020-01-01 13:29:39 +11:00
Alexander
038f9daf27 bring ImageColor.getcolor into line with Convert.c implementation 2019-12-31 16:56:09 +03:00
Andrew Murray
8924054dd9 Changed _limit_signed_rational 2019-12-31 19:12:33 +11:00
Alexander
fa1deca144 Fix wrong tests 2019-12-31 04:12:50 +03:00
Andrew Murray
74d53bcd15 Lint fixes 2019-12-31 11:58:39 +11:00
Andrew Murray
6d3fb7b083
Merge branch 'master' into exif-writing-fixes 2019-12-31 11:38:33 +11:00
Andrew Murray
f72e866b5e
Merge pull request #4305 from radarhere/remove_distutils
Replaced distutils with C version check
2019-12-31 11:33:39 +11:00
Andrew Murray
f77c409742 Renamed variable 2019-12-31 09:04:25 +11:00
Alexander
c74c20eb9f Merge branch 'master' into reduce-in-resize
# Conflicts:
#	docs/releasenotes/7.0.0.rst
2019-12-30 03:24:38 +03:00
Alexander
34029e9af4 texts fixes 2019-12-30 03:23:30 +03:00
Andrew Murray
82356f7f36 Removed _libtiff_version 2019-12-28 12:57:13 +11:00
Andrew Murray
61d0784933 Allow loading of WMF images at a given DPI 2019-12-28 11:25:39 +11:00
Andrew Murray
34d04d3e82 Replaced distutils with C version check 2019-12-28 09:57:49 +11:00
Alexander
1bd9b16e97 wording 2019-12-27 15:35:17 +03:00
Alexander
222c2f6978 Merge branch 'master' into reduce-in-resize 2019-12-27 15:13:19 +03:00
Alexander Karpinsky
5f69035865
Merge pull request #4251 from uploadcare/reduce
Reduce operation
2019-12-27 15:11:47 +03:00
Alexander
fc0248869c wording 2019-12-27 14:27:37 +03:00
Andrew Murray
e446b58317 Lint fix 2019-12-26 20:21:16 +11:00
Andrew Murray
996f552f32
Highlight class name
Co-Authored-By: Hugo van Kemenade <hugovk@users.noreply.github.com>
2019-12-26 19:55:10 +11:00
Andrew Murray
c99257abb4
Updated error string
Co-Authored-By: Hugo van Kemenade <hugovk@users.noreply.github.com>
2019-12-26 19:54:28 +11:00
Andrew Murray
fedb0407b4 Raise ValueError for io.StringIO in Image.open 2019-12-26 18:53:06 +11:00
Andrew Murray
ca0209d194 Updated exception documentation [ci skip] 2019-12-26 13:16:49 +11:00
Hugo van Kemenade
0fe6955da5
Removed duplicate line (#4291)
Removed duplicate line
2019-12-25 14:55:25 +02:00
Alexander
d719aafecb Merge branch 'reduce' into reduce-in-resize
# Conflicts:
#	docs/releasenotes/7.0.0.rst
2019-12-25 15:45:17 +03:00
Alexander
dda5558129 Merge branch 'master' into reduce 2019-12-25 15:42:47 +03:00
Alexander Karpinsky
b5d06baa5f
Merge pull request #4231 from uploadcare/box-in-thumbnail
Fix thumbnail geometry when DCT scaling is used
2019-12-25 15:41:40 +03:00
Andrew Murray
ee30fe1b39
Merge pull request #4147 from beipang2/issue_4146
Use default DPI when exif provides invalid x_resolution
2019-12-25 20:26:27 +11:00
Andrew Murray
1740a1f20e Ensure tempfile is unlinked 2019-12-25 15:22:54 +11:00
Andrew Murray
c35fb6fb67
Merge branch 'master' into box-in-thumbnail 2019-12-24 18:18:34 +11:00
Andrew Murray
74a8034644 Updated draft documentation [ci skip] 2019-12-24 14:50:53 +11:00
Andrew Murray
6480d57c1f Removed duplicate line 2019-12-24 08:33:04 +11:00
Hugo
6a43ea86ea Merge remote-tracking branch 'upstream/master' into doctest-turn-warnings-into-errors 2019-12-21 15:52:59 +02:00
Hugo
113477fbee Fix unexpected unindents 2019-12-21 14:05:50 +02:00
Alexander
59f8eeb290 add release notes 2019-12-21 03:16:42 +03:00
Andrew Murray
4580b156b7 Raise an error if BMP file size is too large when saving 2019-12-21 08:37:40 +11:00
Andrew Murray
ce62dca326 Aligned comments correctly 2019-12-21 08:15:48 +11:00
Alexander
fc28182040 fix formatting 2019-12-20 20:42:00 +03:00
Alexander
8181aed77f Merge branch 'reduce' into reduce-in-resize
# Conflicts:
#	docs/releasenotes/7.0.0.rst
#	src/PIL/Image.py
2019-12-20 20:27:11 +03:00
Alexander
d41f2713b6 Merge branch 'master' into reduce 2019-12-20 20:22:36 +03:00
Alexander
b48996c213 rename max_reduce to reducing_gap 2019-12-20 14:59:18 +03:00
Alexander
b85c610a03 Use box for reduce 2019-12-20 14:54:06 +03:00
Alexander
b112e55070 Merge branch 'master' into box-in-thumbnail
# Conflicts:
#	docs/releasenotes/7.0.0.rst
2019-12-19 16:36:37 +03:00
Alexander Karpinsky
6d75a673b6
Merge pull request #4255 from uploadcare/default-resample-filter
Change default resize resampling filter from NEAREST to BICUBIC
2019-12-19 16:33:34 +03:00
Alexander
cdd1253211 notes fixes
skip-checks: true
2019-12-18 01:09:54 +03:00
Alexander
4da9858709 change default resampling filter for ImageOps.pad(), ImageOps.scale() and ImageOps.fit() 2019-12-17 18:15:02 +03:00
Alexander
fa9e85cd1f max_reduce arguments in resize and thumbnail 2019-12-17 03:01:51 +03:00
Alexander
2db5406626 Merge branch 'box-in-thumbnail' into reduce-in-resize-2 2019-12-17 02:27:44 +03:00
Alexander
ea9c6e9fe1 Merge branch 'master' into reduce 2019-12-17 02:26:05 +03:00
Alexander
a027897f74 Merge branch 'master' into box-in-thumbnail
# Conflicts:
#	Tests/test_image_thumbnail.py
2019-12-17 00:42:29 +03:00
Andrew Murray
c7bef264bc Allow thumbnail to accept non-integer size arguments 2019-12-17 06:05:36 +11:00
Alexander
791d1a2846 Better thumbnail aspect ratio preservation 2019-12-07 20:07:27 +03:00
Alexander
ac92836e81 Change default resize resampling filter 2019-12-07 18:08:19 +03:00
Alexander
5283141417 Merge branch 'master' into reduce 2019-12-05 14:23:28 +03:00
Alexander
778b5f9fed add box parameter 2019-12-04 23:13:20 +03:00
Andrew Murray
2d7cfc4bbc
Merge pull request #4239 from radarhere/photoshop
Handle broken Photoshop data
2019-12-01 07:33:26 +11:00
Alexander
4e092153fc add release notes 2019-11-30 18:17:10 +03:00
Andrew Murray
08cad40002
Merge pull request #4181 from pwohlhart/patch-1
Better error messaging in PIL.Image.fromarray
2019-11-30 21:12:05 +11:00
Andrew Murray
47b2ae9a63 Raise a specific exception if no data is found for an MPO frame 2019-11-30 11:05:36 +11:00
Andrew Murray
e51be50549 Handle broken Photoshop data 2019-11-30 10:08:32 +11:00
Alexander
8b6ad4a471 tests for supported modes 2019-11-26 03:39:57 +03:00
Alexander
335f5431de dummy method 2019-11-24 17:39:49 +03:00
Alexander
e234445682 linter fixes 2019-11-24 15:32:45 +03:00
Hugo van Kemenade
8626762024
Merge pull request #4174 from mixmastamyk/patch-1
Fix mismatched function name, add explanation
2019-11-24 13:54:22 +02:00
Alexander
fd21de7dc4 Merge branch 'refs/heads/master' into box-in-thumbnail
# Conflicts:
#	Tests/test_image_thumbnail.py
2019-11-24 05:27:13 +03:00
Alexander
375556ffb5 use a box from draft in thumbnail 2019-11-24 05:24:00 +03:00
Alexander
4126f6cdf7 return chosen image mode and the box of the image 2019-11-24 04:55:49 +03:00
Alexander
2d1482b400 minor fixes related to draft 2019-11-24 04:33:34 +03:00
Andrew Murray
e773980961 Updated URL [ci skip] 2019-11-22 10:12:52 +11:00
Hugo van Kemenade
a949d7882e
Merge branch 'master' into rm-2.7 2019-11-20 10:26:55 +02:00
Andrew Murray
40f891dfd7 Added UnidentifiedImageError 2019-11-19 21:20:02 +11:00
Hugo
e5486b40f8 Merge remote-tracking branch 'upstream/master' into rm-2.7 2019-11-18 13:56:42 +02:00
Andrew Murray
29c0a2fa6e
Merge pull request #4197 from hugovk/rm-plugins-__version__
Remove deprecated __version__ from plugins
2019-11-18 22:07:54 +11:00
Hugo van Kemenade
f81c829e04
Update word order
Co-Authored-By: Andrew Murray <3112309+radarhere@users.noreply.github.com>
2019-11-18 12:07:02 +02:00
Hugo
12a725988e Merge remote-tracking branch 'upstream/master' into rm-2.7 2019-11-16 17:10:10 +02:00
Hugo van Kemenade
3134e5cd47
Merge pull request #4105 from radarhere/ifd
IFDRational init cleanup
2019-11-13 20:30:35 +02:00
Hugo van Kemenade
54e57768ab
Merge pull request #4128 from radarhere/info
Copy info in Image.transform
2019-11-13 20:27:51 +02:00
Hugo van Kemenade
ce18064b20
Merge pull request #4171 from radarhere/gamma
Corrected DdsImagePlugin setting info gamma
2019-11-13 20:26:03 +02:00
Hugo
0c5895470c Remove deprecated __version__ from plugins 2019-11-05 17:01:03 +02:00
Hugo van Kemenade
24b8501d4b
Remove handling for pre-3.3 wide/narrow builds 2019-11-04 00:32:33 +02:00
Hugo van Kemenade
5006401d0b
Merge branch 'master' into rm-2.7 2019-11-03 22:48:26 +02:00
Jon Dufresne
4483642e45 Reuse deferred_error instead of _imaging_not_installed
deferred_error is a general implementation of _imaging_not_installed.
Can reuse rather than repeating the same logic.
2019-11-03 08:29:17 -08:00
Hugo
58e6d127b7 In Python 3, 'next' is renamed to '__next__' 2019-11-03 16:02:08 +02:00
Hugo van Kemenade
6060ed3d14
Merge pull request #4091 from nulano/libimagequant-features
Add libimagequant to features.py
2019-11-02 21:31:09 +02:00