Andrew Murray
7c2b681183
Handle disposing background from outside palette
2023-11-02 16:05:13 +11:00
Andrew Murray
d682c18ded
Use "gray" more consistently
2023-10-19 19:12:01 +11:00
Hugo van Kemenade
5f04b3d278
Merge pull request #7289 from radarhere/undefined_palette
2023-10-05 09:31:02 -06: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
fd310512b9
Set C palette to be empty by default
2023-07-17 23:04:43 +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
Andrew Murray
9ed8ca1494
Removed "del im"
2023-03-03 10:28:36 +02:00
Aarni Koskela
43128ce716
Fix up pytest.warns lambda: uses
2023-02-23 16:06:40 +02: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
e24dd745f7
Convert test_optimize_correctness to use parametrize
2023-01-08 14:48:56 +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
c259ac492f
Parametrized tests
2022-10-03 16:57:42 +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
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
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
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
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
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
138bd280e4
Added check to test_comment as well
2022-05-19 20:59:32 +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
7e084c7ede
Use durations from each frame by default when saving
2022-05-03 20:07:47 +10:00
Andrew Murray
e62449f94c
Added DeferredError to _fp
2022-04-17 12:14:53 +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
a715bf2d6f
[Test] function name should be snake_case
2022-04-11 15:29:01 +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
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
4e16a9a942
Retain RGBA transparency when saving multiple frames
2022-03-12 15:14:36 +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
9006836c28
Test that n_frames and is_animated do not change the image
2022-02-22 08:55:02 +11:00
Andrew Murray
dae1f691c2
Updated checks that no warnings were raised
2022-02-21 13:49:01 +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
1fb1bec0e8
Added test
2021-11-29 17:49:19 +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
Andrew Murray
cf275737ee
Do not rearrange palette channels
2021-07-29 16:20:20 +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
d24299a16c
Corrected comments
2021-06-28 20:21:46 +10:00
Andrew Murray
450382f574
Do not use raw ImagePalette
2021-06-27 15:09:39 +10:00
Andrew Murray
f6d504c8f6
Use context manager
2021-06-26 00:48:16 +10:00
Glenn Maynard
432677740d
Add a test for an image that works with other GIF decoders.
...
This test is fixed by the next commits.
2021-06-26 00:48:10 +10:00
Andrew Murray
5b4cb5052a
Draw first frame on top of transparency
2021-06-25 21:54:21 +10:00
Andrew Murray
a47072bcbe
Treat previous contents of first frame as transparent
2021-04-15 19:01:12 +10:00
Hugo van Kemenade
2f5687f886
Merge pull request #5390 from radarhere/gif_missing_background
...
Use zero if GIF background color index is missing
2021-04-15 11:57:31 +03:00
Andrew Murray
3cb2413066
Use zero if background color index is missing
2021-04-08 08:04:20 +10:00
Andrew Murray
d661e438f6
Fixed ensuring that previous frame was loaded
2021-04-06 19:31:51 +10:00
Andrew Murray
b216b367ac
Only set info transparency on first frame
2021-03-17 00:24:57 +11:00
Andrew Murray
a5c251029c
Replaced various instances of assert_image_equal with assert_image_equal_tofile
2021-02-21 22:15:56 +11:00
Andrew Murray
4a0569e97f
Changed zero length assertions to falsy
2021-02-11 13:48:31 +11:00
Andrew Murray
01be700081
Fixed asserting that no warnings were raised
2021-02-10 23:37:55 +11:00
Hugo van Kemenade
07bbc46589
Merge pull request #5149 from wiredfool/gif_write_oob_read
2021-01-02 10:14:17 +02:00
Eric Soroos
d96945b7c8
Fix Out of bounds read when saving GIF of xsize=1
2020-12-27 16:01:26 +01:00
Andrew Murray
9940c84b08
Use previous disposal method in load_end
2020-12-23 13:22:53 +11:00
Hugo van Kemenade
dd87dd50c0
Update to isort 5 with Black profile support
2020-08-08 22:39:29 +03:00
Hugo
44e661f25a
Convert to use pytest
2020-02-22 23:03:01 +02:00
Andrew Murray
8482919a37
Converted most assert statements to pytest
2020-02-23 00:06:21 +11:00
Jon Dufresne
4f185329f4
Streamline test skipping based on supported features
...
This adds a new test decorator: skip_unless_feature(). The argument is
the same as passed to features.check(). If the feature is not supported,
the test will be skipped.
This removes several kinds of boilerplate copied and pasted around tests
so test feature checking is handled and displayed more consistently.
Refs #4193
2020-02-18 13:07:01 -08:00
Jon Dufresne
967f46d1d8
Remove unnecessary skip test logic
...
The gif_encoder and gif_decoder are always compiled and included in
src/_imaging.c.
2020-02-18 13:02:30 -08:00
Hugo
38bf862185
Replace PillowTestCase.assert_warning with pytest.warns
2020-02-03 11:11:32 +02:00
Hugo
a4bf9fa036
Convert most PillowTestCase methods to pytest
2020-02-02 12:26:01 +02:00
Andrew Murray
e8bb2dd93e
Allow string comment when saving GIF
2020-01-01 13:29:39 +11:00
Alexander
ac92836e81
Change default resize resampling filter
2019-12-07 18:08:19 +03:00
Andrew Murray
c0048ad7de
Use context managers
2019-11-26 07:03:23 +11:00