Commit Graph

3937 Commits

Author SHA1 Message Date
Andrew Murray
04d9761316 Changed "font" to class variable 2022-08-06 17:29:44 +10:00
Andrew Murray
e77a7b6b4f Added support for RGBA PSD images 2022-08-05 23:29:58 +10:00
Andrew Murray
101f115853 Increased tolerance to allow for libtiff with libjpeg-turbo 2022-08-04 20:03:24 +10:00
Andrew Murray
c3cc621c67 Merge branch 'python-pillow-main' 2022-08-02 15:55:21 +10:00
Andrew Murray
2b14d83549 Added strip_size as TIFF encoder argument 2022-08-01 21:41:17 +10:00
Andrew Murray
f5b27f90f7 Save 1 mode PDF using CCITTFaxDecode filter 2022-08-01 20:38:47 +10:00
mergify[bot]
363586be6a
Merge pull request #6463 from bigcat88/xmp-tags-orientation
Parse orientation from XMP tag contents
2022-07-30 02:02:50 +00:00
mergify[bot]
87a08e2381
Merge pull request #6457 from REDxEYE/ATI1-2_support
Add support for ATI1/2(BC4/BC5) DDS files
2022-07-27 12:30:52 +00:00
Andrew Murray
bac83f7dd3 Check that orientation is still absent after reloading Exif 2022-07-27 22:27:43 +10:00
Andrew Murray
7e1261c6a0 Simplified test code 2022-07-27 22:18:39 +10:00
Alexander Piskun
db20d0f8fe
fixing typo in filetest name 2022-07-26 00:45:23 +03:00
Alexander Piskun
6e97da0260
fixing xmp tag orientation generated by exiftool 2022-07-26 00:30:32 +03:00
Hugo van Kemenade
cd261abbcb
Merge pull request #6455 from radarhere/gif_tile 2022-07-25 10:05:27 +03:00
REDxEYE
1050d13350 Replace test files with images with compatible license 2022-07-23 12:44:03 +03:00
Andrew Murray
806f43f0b7 Simplified code 2022-07-23 14:19:28 +10:00
Andrew Murray
5bd893f760 Rename format to BC6H and BC6HS 2022-07-23 14:16:40 +10:00
pre-commit-ci[bot]
fd86414ac2 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2022-07-22 22:02:58 +00:00
REDxEYE
2376399150 Add test and test files for ATI1 pixel format and fix image mode for ATI1 2022-07-23 01:02:06 +03:00
REDxEYE
ad2c6a20fe Add support for ATI1/2(BC4/BC5) DDS files
This commit adds support for loading DDS with ATI1 and ATI2 fourcc pixel format
2022-07-23 00:30:27 +03:00
Andrew Murray
0844fb0ed3 Do not clear tile if not updating the image when seeking 2022-07-21 09:05:14 +10:00
Andrew Murray
0d0cf6374c Restored unimplemented DXGI format test 2022-07-19 07:18:48 +10:00
ShadelessFox
fac18a5b60
Add BC6 tests 2022-07-18 22:24:41 +03:00
Andrew Murray
2944ff18d6 Support saving multiple MPO frames 2022-07-16 20:02:58 +10:00
Andrew Murray
9f6a315092 Added ABGR MASK_MODE 2022-07-14 07:25:28 +10:00
Andrew Murray
40a0999303 Raise ValueError if PNG sRGB chunk is truncated 2022-07-11 20:02:41 +10:00
nulano
74e0b954f2
test {ImageFont,TransposedFont}.getsize() deprecation 2022-07-01 11:22:47 +02:00
Andrew Murray
0d91d13a6e Merge branch 'main' into deprecate-getsize 2022-06-30 20:37:37 +10:00
Andrew Murray
c9f1b35e98 Added GIF decompression bomb check 2022-06-30 12:47:35 +10:00
Hugo van Kemenade
714ff4e397
Merge pull request #6386 from dawidcrivelli/handle_pcf_missing_characters
Handle PCF fonts files with less than 256 characters
2022-06-27 07:59:50 +03:00
Andrew Murray
93805d5257 Limit expected number of characters to nencoding 2022-06-27 14:05:13 +10:00
Andrew Murray
fc497ffe5e
Merge pull request #6378 from raygard/fix_get_optimize
Improved GIF optimize condition
2022-06-27 09:12:20 +10:00
Andrew Murray
e5046b1057 Reverted to __array_interface__ with the release of NumPy 1.23 2022-06-24 23:08:36 +10:00
Hugo van Kemenade
e774be01fe
Merge pull request #6391 from radarhere/pcx
Pad PCX palette to 768 bytes when saving
2022-06-23 09:50:22 +03:00
Hugo van Kemenade
6dd5b2e8c9
Merge pull request #6377 from btrekkie/fix-round-to-palette
Fixed bug with rounding pixels to palette
2022-06-22 12:31:25 +03:00
Andrew Murray
317286d260 Pad palette to 768 bytes 2022-06-22 17:27:49 +10:00
Andrew Murray
3e8a9b2165 Fixed loading L mode RLE8 images 2022-06-20 21:01:10 +10:00
nulano
a7baa31de8
use getbbox instead of getsize in fuzzers.py 2022-06-20 04:35:42 +01:00
nulano
93acbcf9e2
add getbbox and getlength to TransposedFont with tests 2022-06-20 02:37:42 +01:00
nulano
e2158344a0
update test_imagefont to use textbbox 2022-06-20 01:20:56 +01:00
Andrew Murray
a2eff2aff5 Added test 2022-06-20 09:18:05 +10:00
nulano
1bf87556ef
add textbbox and textlength to ImageDraw2 and update tests 2022-06-19 22:04:57 +01:00
nulano
f34a6460ef
update test_font_pcf to use getbbox 2022-06-19 22:04:56 +01:00
nulano
c854bf8d1c
add getbbox and getlength to basic ImageFont and update related tests 2022-06-19 22:04:56 +01:00
mergify[bot]
8de74b9fab
Merge pull request #6370 from LostBenjamin/patch-1
Fix wrong operator bug in PyCMSError exception message
2022-06-19 13:21:43 +00:00
Hugo van Kemenade
1229110fb2
Update comment
Co-authored-by: Andrew Murray <3112309+radarhere@users.noreply.github.com>
2022-06-19 15:22:02 +03:00
Hugo van Kemenade
607f508080
Update comment
We get "an integer is required (got type NoneType)" with Python 3.7-3.9 on Windows.

We get "'NoneType' object cannot be interpreted as an integer" with Python 3.10 on Windows and all versions on macOS and Ubuntu.
2022-06-19 12:29:39 +03:00
Andrew Murray
709744432a Optimise palettes with more than 128 colors 2022-06-19 16:47:50 +10:00
Ray Gardner
128ed189e5 Improve test in _get_optimize()
Palette can be optimized if number of colors can be reduced by half or more.
2022-06-18 18:07:58 -06:00
William Jacobs
9f9e26522e Fixed bug with rounding pixels to palette
This fixes a bug with rounding pixels to the nearest palette color. Specifically, there is a typo with computing the minimum distance from a palette color to a given cache box. This is causing palette colors to be incorrectly excluded from consideration.
2022-06-18 04:09:41 -04:00
Andrew Murray
4d6e5a0d09 Limit tile size to avoid extending outside image 2022-06-16 08:36:43 +10:00
Hugo van Kemenade
6ae6a241f2 More generic match text 2022-06-15 21:57:20 +03:00
Hugo van Kemenade
983a6139d5 Check other exception messages 2022-06-15 21:42:04 +03:00
Hugo van Kemenade
6c889d1088 Test ImageCms.profileToProfile with invalid flags 2022-06-15 21:34:16 +03:00
Andrew Murray
6eb6232f04 Test comment that ends in the same block 2022-06-14 21:39:55 +10:00
Andrew Murray
216cd374dd Parametrized tests 2022-06-14 21:39:26 +10:00
Andrew Murray
c4d51fb268 Added support for PPM arbitrary maxval in plain formats 2022-06-13 19:55:25 +10:00
Andrew Murray
5051a29a4e Merge branch 'main' into plainPPM 2022-06-12 16:11:17 +10:00
Hugo van Kemenade
8bd7e81b5d
Merge pull request #6352 from radarhere/apply_transparency
Added apply_transparency()
2022-06-11 17:58:10 +03:00
Hugo van Kemenade
f7ec22f518
Merge pull request #6197 from radarhere/endian
Fixed behaviour change from endian fix
2022-06-10 19:02:54 +03:00
Hugo van Kemenade
1c810bea52
Merge pull request #6301 from radarhere/pytest
Added pytest-timeout to test dependencies
2022-06-10 18:45:49 +03:00
Hugo van Kemenade
3a61c9e95e
Merge pull request #6350 from radarhere/remap_rgba_palette 2022-06-10 18:43:09 +03:00
Andrew Murray
1c0bc81a65 Revert "Skip test_realloc_overflow unless libtiff 4.0.4 or higher" 2022-06-08 17:51:44 +10:00
Andrew Murray
11be163143 Added apply_transparency() 2022-06-06 22:47:58 +10:00
Andrew Murray
4c8aff9798 Allow remapping P images with RGBA palettes 2022-06-06 00:12:48 +10:00
Hugo van Kemenade
38931c1e47
Merge pull request #6278 from radarhere/polygon
Fixed drawing translucent 1px high polygons
2022-06-04 09:34:37 +03:00
Hugo van Kemenade
55d3c07e1d
Merge pull request #6232 from radarhere/colormap 2022-06-01 23:12:13 +03:00
Hugo van Kemenade
37c642338b
Merge pull request #6337 from RedShy/p2pa_images_conversion
Fix "P"->"PA" image conversion
2022-06-01 22:17:55 +03:00
Hugo van Kemenade
b261e17907
Merge pull request #6335 from radarhere/exif 2022-06-01 16:36:03 +03:00
Andrew Murray
71d6a7b14f
Merge pull request #6303 from radarhere/disconnected
Only try to connect discontiguous corners at the end of edges
2022-05-28 16:40:00 +10:00
Andrew Murray
cb4b5f212d Separated test 2022-05-28 15:25:19 +10:00
Andrew Murray
b0bc74a297 Only test alpha channel values 2022-05-28 09:24:42 +10:00
Davide Consalvo
84da70988f
Merge branch 'python-pillow:main' into p2pa_images_conversion 2022-05-27 12:37:43 +02:00
Davide Consalvo
9a14be898c added p2pa test 2022-05-27 12:34:05 +02:00
Hugo van Kemenade
27f5c4d8fb
Merge pull request #6176 from radarhere/gif_transparency
Improve transparency handling when saving GIF
2022-05-27 08:31:37 +02:00
Hugo van Kemenade
0476914ee4
Merge pull request #6219 from radarhere/gif_eof
Do not update GIF frame position until local image is found
2022-05-27 08:29:38 +02:00
Andrew Murray
b1885779a9 Once exif data is parsed, do not reload unless it changes 2022-05-27 07:54:54 +10:00
Andrew Murray
2457eafabd Only read the number of loops from the first frame 2022-05-24 12:53:19 +10:00
Andrew Murray
62d0f0e38d Once comment is loaded, keep it for subsequent frames 2022-05-22 15:30:16 +10:00
Andrew Murray
67f5e5d272 Test an empty string comment in arguments removes existing comment 2022-05-22 15:01:28 +10:00
Andrew Murray
db76eaa12c
Merge branch 'main' into comment_correct_placement 2022-05-22 14:56:57 +10:00
Andrew Murray
e9cb2156ec
Merge pull request #6294 from raygard/comments_separate_multiple
Separate multiple GIF comment blocks in a frame with newlines
2022-05-22 14:53:03 +10:00
Andrew Murray
62d5817e29 Changed delimiter to \n 2022-05-22 14:11:11 +10:00
Andrew Murray
99f4623a8d Remove transparency if it cannot be remapped 2022-05-21 17:39:37 +10:00
Andrew Murray
46a80d144a Update transparency when remapping the palette 2022-05-21 16:37:47 +10:00
Andrew Murray
2072a52bb5
Merge pull request #6292 from raygard/comment_use_gif89a
Always use GIF89a for comments
2022-05-21 10:24:14 +10:00
Hugo van Kemenade
33f00c9ca8
Merge pull request #6231 from radarhere/bmp_compression
Ignore compression value from BMP info dictionary when saving as TIFF
2022-05-20 16:18:15 +03:00
Hugo van Kemenade
fbb74a6050
Merge pull request #6234 from radarhere/font_variant
If font is file-like object, do not re-read from object to get variant
2022-05-19 23:30:44 +03:00
Hugo van Kemenade
2c58c3ee11
Merge pull request #6213 from radarhere/fp 2022-05-19 18:52:55 +03:00
Andrew Murray
80782bba9b
Merge pull request #6254 from benrg/affine-transform
Support more affine expression forms in im.point()
2022-05-19 21:06:04 +10:00
Andrew Murray
138bd280e4 Added check to test_comment as well 2022-05-19 20:59:32 +10:00
Andrew Murray
1a286627b4 Skip test_realloc_overflow unless libtiff 4.0.4 or higher 2022-05-17 13:17:01 +03:00
Andrew Murray
f0353c5996 When reading past the end of a scan line, reduce bytes left 2022-05-17 11:53:24 +03:00
Andrew Murray
62c7ee0f00 Only try to connect discontiguous corners at the end of edges 2022-05-16 22:31:49 +10:00
Andrew Murray
b9a5944058 Added pytest-timeout to test dependencies 2022-05-16 08:56:45 +10:00
Ray Gardner
6257e788ad
Update test_file_gif.py
Changed to use a test image already in Images folder
2022-05-14 11:57:41 -06:00
pre-commit-ci[bot]
416de882e4 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2022-05-14 15:36:54 +00:00
Ray Gardner
22d9095e5c Correct placement of GIF comment
Place GIF comment after Global Color table. Should go after "NETSCAPE" looping extension after pull #6211.
2022-05-13 17:09:37 -06:00
Ray Gardner
44c6467400 Multiple GIF comments in a frame are separated
If more than one comment is in a GIF frame, separate them with \r\n in the info dict.
2022-05-13 16:36:20 -06:00
Ray Gardner
b3d29e946a Always use GIF89a for long comments
Fix bug that allows GIFs with long comments to be written as GIF87a.
2022-05-13 11:33:33 -06:00
Andrew Murray
3bce17175c Replaced test image to fix xfail 2022-05-09 22:30:04 +10:00
Andrew Murray
ef8fd7f8b9 Populate Python palette in fromarray() 2022-05-09 18:50:54 +10:00
Hugo van Kemenade
6b05a28482
Merge pull request #6253 from radarhere/png_chunk_length
Raise ValueError if PNG chunks are truncated
2022-05-07 00:29:38 +03:00
Hugo van Kemenade
f84684931d
Merge pull request #6265 from radarhere/gif_duration
Use durations from each frame by default when saving GIFs
2022-05-06 18:44:01 +03:00
Andrew Murray
c824ab048f Fixed drawing translucent 1px high polygons 2022-05-06 22:35:26 +10:00
Hugo van Kemenade
3fa89f09eb
Merge pull request #6274 from radarhere/imagetk
Skip test_imagetk if tk raises a RuntimeError
2022-05-05 23:41:55 +03:00
Hugo van Kemenade
779fb4975b
Merge pull request #6270 from radarhere/samples_per_pixel
Adjust BITSPERSAMPLE to match SAMPLESPERPIXEL
2022-05-05 14:22:19 +03:00
Andrew Murray
4e52d06e6c Added test 2022-05-05 17:57:08 +10:00
Andrew Murray
26e68ed321 Skip test_imagetk if tk raises a RuntimeError 2022-05-05 08:16:06 +10:00
Andrew Murray
886fcbe3d6 Do not open images with zero or negative height 2022-05-04 21:25:40 +10:00
Ben Rudiak-Gould
48f763a378 Manually merge radarhere's additional tests 2022-05-03 13:53:50 -07:00
Andrew Murray
46802d5def Removed unused import and restored existing checks (#1)
* Removed unused import

* Restored existing checks

* Restored coerce_e, _E and data property

* Deprecated coerce_e

Co-authored-by: Andrew Murray <radarhere@users.noreply.github.com>
2022-05-03 13:05:39 -07:00
Ben Rudiak-Gould
4e12ccc63e Support more affine expression forms in Image.point
In modes I and F, Image.point only supported affine expressions of the
forms (lambda x:) x * a, x + a, and x * a + b. Expressions like 1 - x
had to be written x * -1 + 1.

This rewrite, though still limited to affine transformations, supports
far more expression forms, including 1 - x, (2 * x + 1) / 3, etc.
2022-05-03 13:05:39 -07:00
Andrew Murray
7e084c7ede Use durations from each frame by default when saving 2022-05-03 20:07:47 +10:00
Hugo van Kemenade
87c2373265
Merge pull request #6242 from radarhere/ppm_maxval 2022-05-01 21:21:52 +03:00
Andrew Murray
51bdc99b96 Raise ValueError if PNG chunks are truncated 2022-05-01 13:45:58 +10:00
Andrew Murray
81b473f9d2 Raise ValueError for invalid maxval 2022-04-30 10:37:50 +10:00
Andrew Murray
9c9aa9964e Skip tests unless JPEG 2000 is available 2022-04-29 19:17:03 +10:00
Hugo van Kemenade
d42efd7ec0
Update URL (#16) 2022-04-28 08:26:57 +10:00
Andrew Murray
f64dd53897 Test invalid WebP background colors 2022-04-26 18:55:54 +10:00
Andrew Murray
bcded33cee
Merge pull request #6195 from hugovk/cleanup
Cleanup: various
2022-04-26 18:51:44 +10:00
Hugo van Kemenade
42a81c4173
Merge pull request #6239 from radarhere/ppm_token
Decode bytes before passing to f-string
2022-04-26 09:14:20 +03:00
Andrew Murray
5d4258e72b Simplified index slicing 2022-04-25 22:52:29 +10:00
Andrew Murray
5867e0bbac Decode bytes before passing to f-string 2022-04-24 15:42:45 +10:00
Hugo van Kemenade
889ceedfb9
Ignore warning
Co-authored-by: Andrew Murray <3112309+radarhere@users.noreply.github.com>
2022-04-24 08:28:21 +03:00
Andrew Murray
40711f9edb Run deprecated import check before imports from other tests 2022-04-23 08:01:02 +10:00
Hugo van Kemenade
f854d7f7c9 Deprecate support for Qt 5 (PyQt5 and PySide2). Use Qt 6 (PyQt6 or PySide6) instead. 2022-04-22 15:56:11 +03:00
Andrew Murray
a40c7a6bea If font is file-like object, do not re-read from object to get variant 2022-04-22 07:31:20 +10:00
Andrew Murray
1e3fdb3055 Pad COLORMAP to 768 items 2022-04-21 11:29:17 +10:00
Andrew Murray
2c5e5049db Ignore compression value from BMP info dictionary 2022-04-21 07:58:12 +10:00
Andrew Murray
0374d6190b Skip tests unless libtiff is available 2022-04-20 11:10:48 +10:00
Andrew Murray
a33dc56560
Merge pull request #6220 from nulano/deprecate-fill
Deprecate FreeTypeFont.getmask2 fill parameter
2022-04-18 08:05:10 +10:00
nulano
ab86bdda0a
fix deprecation test 2022-04-17 16:03:53 +02:00
Andrew Murray
e62449f94c Added DeferredError to _fp 2022-04-17 12:14:53 +10:00
nulano
b4b8249c9d
None is also not a valid value 2022-04-16 17:46:43 +02:00
nulano
a766b5b0d5
deprecate fill in imageFont 2022-04-16 17:07:32 +02:00
Andrew Murray
35fbf22250
Merge branch 'main' into cleanup-names 2022-04-16 19:49:40 +10:00
Andrew Murray
535c45717f
Merge pull request #6184 from hugovk/deprecations-helper
Add deprecations helper
2022-04-16 18:58:46 +10:00
Andrew Murray
c8118438ae Do not update frame position until local image is found 2022-04-16 17:07:39 +10:00
Andrew Murray
92f96b44e1
Merge branch 'main' into cleanup-names 2022-04-15 20:45:44 +10:00
Andrew Murray
ae12b1d2dc Removed unused function 2022-04-15 18:23:02 +10:00
Andrew Murray
950d0ad1d3 Fixed behaviour change from #5901 endian fix 2022-04-12 23:12:54 +10:00
Hugo van Kemenade
9951de08c0 [Test] argument name should be snake_case 2022-04-11 15:29:01 +03:00
Hugo van Kemenade
a715bf2d6f [Test] function name should be snake_case 2022-04-11 15:29:01 +03:00
Hugo van Kemenade
fca64bc0d3 [Test] class names should be CamelCase 2022-04-11 15:29:01 +03:00
Hugo van Kemenade
7fa92c67b1 [Private] class names should be CamelCase 2022-04-10 23:55:16 +03:00
Hugo van Kemenade
d241e38120 [Private] function names should be snake_case 2022-04-10 23:55:16 +03:00
Hugo van Kemenade
d3c9a6504e Variable in function should be snake_case 2022-04-10 23:55:16 +03:00
Hugo van Kemenade
855c1a12da Use self for first method parameter 2022-04-10 23:39:54 +03:00
Hugo van Kemenade
73cf0cb3d9 Use cls for classmethods 2022-04-10 23:39:54 +03:00
Hugo van Kemenade
9d87b26a67 Don't redeclare loop variable 2022-04-10 23:39:54 +03:00