Commit Graph

223 Commits

Author SHA1 Message Date
Andrew Murray
19c2721931
Merge branch 'main' into progress 2023-12-22 23:56:40 +11:00
Andrew Murray
fae06539be Merge branch 'main' into progress 2023-12-21 22:36:16 +11:00
Hugo van Kemenade
43b2f61e79 Add 'from __future__ import annotations' using Ruff/isort 2023-12-21 13:13:31 +02:00
Hugo van Kemenade
18907b5f7e
Merge pull request #7568 from radarhere/gif_transparency 2023-12-21 12:58:07 +02:00
Hugo van Kemenade
9eb93915c3
Merge pull request #7521 from radarhere/gif_save_all 2023-12-21 12:52:26 +02:00
Hugo van Kemenade
ccfe33fd3a
Merge pull request #7515 from radarhere/gif 2023-12-21 12:51:20 +02:00
Andrew Murray
55c5587437 Fill identical pixels with transparency in subsequent frames 2023-11-25 19:16:32 +11:00
Andrew Murray
f59b51fdc7 Simplified code 2023-11-25 17:36:19 +11:00
Aarni Koskela
0c705692ea Remove old commented-out code 2023-11-06 21:21:07 +02:00
Andrew Murray
dc0379fea5 Corrected combining durations from multiple frames into single frame 2023-11-03 21:09:16 +11:00
Andrew Murray
7c2b681183 Handle disposing background from outside palette 2023-11-02 16:05:13 +11:00
Andrew Murray
8b71f3d3c1 Added messages to errors 2023-10-19 18:42:41 +11:00
Andrew Murray
fe7c9d37c8 Moved progress code into common private method 2023-10-06 19:45:21 +11:00
Andrew Murray
b5f322831a Restored filename in progress callback 2023-10-05 18:40:01 +11:00
Andrew Murray
3465a598e2 Pass back index of image in sequence, instead of filename 2023-10-02 18:33:48 +11:00
Andrew Murray
6850465d54 Added progress callback when save_all is used 2023-10-02 15:44:43 +11:00
Andrew Murray
bfafa460e3 Allow "loop=None" when saving 2023-08-09 10:31:34 +10:00
Andrew Murray
9979a822c7 Changed Image mode property to be read-only by default 2023-07-29 09:28:18 +10:00
Andrew Murray
a682ceaf47 Do not use transparency if it has been removed when normalizing mode 2023-07-13 15:20:44 +10:00
Andrew Murray
541d2605b9 Allow alpha differences to indicate different frames when saving GIF 2023-06-14 14:21:07 +10:00
Andrew Murray
922e239cca Fixed saving multiple 1 mode images to GIF 2023-05-24 08:55:14 +10:00
pre-commit-ci[bot]
24183d652e [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2023-02-06 19:27:19 +00:00
Hugo van Kemenade
2df4865e42 Use 'key in mydict' instead of 'key in mydict.keys()' 2023-01-08 13:47:46 +02:00
Hugo van Kemenade
2ae55ccbda Improve exception traceback readability 2022-12-30 00:07:52 +02:00
Andrew Murray
921c46679d Merge branch 'main' into gif_disposal 2022-12-22 08:32:27 +11:00
Hugo van Kemenade
aab4adc441
Merge pull request #6792 from radarhere/webp_gif
Resolves https://github.com/python-pillow/Pillow/issues/6791
2022-12-21 21:09:23 +02:00
Andrew Murray
66f5ad0eae Ignore non-opaque WebP background when saving as GIF 2022-12-09 10:45:09 +11:00
Andrew Murray
4ab837ae23 Only compare to previous when checking for duplicate frames while saving 2022-12-08 11:35:48 +11:00
Andrew Murray
72ac7d1ce9 Corrected default combined frame duration 2022-12-05 18:53:28 +11:00
Andrew Murray
5f8938cb8e
Merge branch 'main' into gif 2022-10-12 22:01:35 +11:00
Hugo van Kemenade
cf3132b7de
Merge pull request #6592 from radarhere/gif_rgba 2022-10-12 12:47:38 +02:00
Andrew Murray
e6ffbfd8df If palette is present but not needed, do not use global palette 2022-10-06 08:46:31 +11:00
Andrew Murray
6663ed929b If first frame has transparency for RGB_ALWAYS, use RGBA 2022-09-17 17:58:24 +10:00
Andrew Murray
ae6520ccd6 Fixed pasting an L frame onto an RGB(A) GIF 2022-09-14 00:05:23 +10:00
Andrew Murray
841ba4a940 Simplified code 2022-08-30 08:08:01 +10:00
Andrew Murray
e7fab6abf4 Fixed remapping to palette with duplicate entries 2022-08-29 23:20:31 +10: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
c9f1b35e98 Added GIF decompression bomb check 2022-06-30 12:47:35 +10:00
Andrew Murray
847ad8c512 Clarify check that palette is not already at its smallest 2022-06-26 20:58:36 +10:00
Andrew Murray
709744432a Optimise palettes with more than 128 colors 2022-06-19 16:47:50 +10:00
pre-commit-ci[bot]
f656711c80 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2022-06-19 00:20:28 +00: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
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
2457eafabd Only read the number of loops from the first frame 2022-05-24 12:53:19 +10:00
Andrew Murray
5cf02f816f Moved Netscape extension after global color table when saving 2022-05-24 12:53:03 +10:00
Andrew Murray
62d0f0e38d Once comment is loaded, keep it for subsequent frames 2022-05-22 15:30:16 +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
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
2c58c3ee11
Merge pull request #6213 from radarhere/fp 2022-05-19 18:52:55 +03:00
Andrew Murray
98329354e0 Simplified version check 2022-05-19 20:59:16 +10: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
7e084c7ede Use durations from each frame by default when saving 2022-05-03 20:07:47 +10:00
Andrew Murray
bcded33cee
Merge pull request #6195 from hugovk/cleanup
Cleanup: various
2022-04-26 18:51:44 +10:00
Andrew Murray
4e075adcc5 Merged _close_fp into close and __exit__ 2022-04-17 12:13:58 +10:00
Andrew Murray
2ae52552f7 Renamed __fp to _fp 2022-04-17 12:13:58 +10:00
Andrew Murray
c8118438ae Do not update frame position until local image is found 2022-04-16 17:07:39 +10:00
Hugo van Kemenade
fe4c859fc1 [Private] argument name should be snake_case 2022-04-10 23:55:16 +03:00
Hugo van Kemenade
1997c814ab Move useful comment into docstring 2022-04-10 23:39:54 +03:00
Andrew Murray
6b2da2f123 Consider transparency from each frame when saving 2022-04-02 21:04:22 +11:00
Hugo van Kemenade
e60ca89721
Merge pull request #6150 from radarhere/gif 2022-03-30 23:23:59 +03:00
Andrew Murray
e22a4395d3 Renamed setting 2022-03-29 21:26:29 +11:00
Andrew Murray
33022eef16 Added versionadded 2022-03-28 22:02:26 +11:00
Hugo van Kemenade
aeba11db1b
Merge pull request #6148 from radarhere/gif_size 2022-03-26 19:48:08 +02:00
Andrew Murray
c5efe60c37 Reverted converting L with transparency to LA after first frame 2022-03-22 22:07:37 +11:00
Andrew Murray
ce8c682748 Added setting to convert to RGB only at a different palette 2022-03-22 20:28:49 +11:00
Andrew Murray
66bb2bd5e8 Added setting to convert first GIF frame to RGB 2022-03-22 20:20:38 +11:00
Andrew Murray
7928e944cb Keep subsequent L frames without transparency as L 2022-03-22 20:20:38 +11:00
Andrew Murray
d806227199 Do not expand GIF during n_frames 2022-03-21 23:19:26 +11:00
Andrew Murray
76871795f7 Resolved UNDONE by removing code 2022-03-12 15:54:08 +11:00
Andrew Murray
4e16a9a942 Retain RGBA transparency when saving multiple frames 2022-03-12 15:14:36 +11:00
Andrew Murray
ca6724bb9d Merge branch 'main' into gif 2022-03-11 08:44:42 +11:00
Hugo van Kemenade
29960c6610
Merge pull request #6108 from radarhere/none 2022-03-10 17:36:13 +02:00
Andrew Murray
c27519960f Check if self.im is not None 2022-03-03 22:10:19 +11:00
Andrew Murray
7d3274518d Allow LA to be used as a mask in paste() 2022-03-01 21:05:42 +11:00
Andrew Murray
5c6212052c Convert subsequent frames of L mode GIF to LA if transparency is present 2022-03-01 20:11:35 +11:00
Andrew Murray
f8546768d6 Do not update images during n_frames or is_animated seeking 2022-02-21 18:34:05 +11:00
Andrew Murray
590c616cfd If next byte ends the GIF, stay on the current frame 2022-02-21 17:35:50 +11:00
Andrew Murray
73cf28cc94 If GIF has already seeked past first frame, it is animated 2022-02-21 15:57:13 +11:00
Andrew Murray
f8e4e9c2dd Added enums 2022-01-15 09:02:31 +11:00
Andrew Murray
0e10a5cc7b When saving RGBA, make use of first transparent palette entry 2021-12-07 06:37:01 +11:00
Andrew Murray
6337428df1 Loading transparent pixels in C from subsequent GIF frames is no longer a problem 2021-11-29 17:49:12 +11:00
Andrew Murray
b383a175be Convert subsequent GIF frames to RGB or RGBA 2021-11-29 17:49:06 +11:00
Hugo van Kemenade
31a96b9c9b Upgrade Python syntax with pyupgrade --py36-plus and format with Black 2021-10-19 15:34:52 +03:00
Andrew Murray
174b4893f3 Prefer global transparency for disposal method 2 2021-10-12 09:45:52 +11:00
Hugo van Kemenade
4c7777c425
Merge pull request #5599 from radarhere/palette
Updates for ImagePalette channel order
2021-08-24 14:52:46 +03:00
Hugo van Kemenade
a7f5b25dc3
Merge pull request #5603 from radarhere/gif_palette
For GIF save_all with palette, do not include palette with each frame
2021-08-13 13:20:57 +03:00
Andrew Murray
cf275737ee Do not rearrange palette channels 2021-07-29 16:20:20 +10:00
Andrew Murray
622a1cd542 Changed URLs to HTTPS 2021-07-12 21:00:36 +10:00
Andrew Murray
43ea81c6db For save_all with palette, do not include palette with each frame 2021-07-11 22:52:32 +10:00
Hugo van Kemenade
50302231ed
Merge pull request #5552 from radarhere/palette 2021-06-28 19:01:54 +03:00
Andrew Murray
461628845d Disposal method 2 is transparency or black when saving 2021-06-28 22:27:01 +10:00
Andrew Murray
e29a7d8a94 Replace with transparency if available for disposal method 2 2021-06-26 00:55:31 +10:00
Andrew Murray
5b4cb5052a Draw first frame on top of transparency 2021-06-25 21:54:21 +10:00
Andrew Murray
8210645e4b If all 256 colors are in use, then there is no need for an additional color for background or transparency 2021-06-23 19:28:46 +10:00