Commit Graph

205 Commits

Author SHA1 Message Date
Hugo van Kemenade
6c4b47dc46
Merge pull request #7496 from radarhere/exif 2023-12-31 17:39:21 +02:00
Hugo van Kemenade
43b2f61e79 Add 'from __future__ import annotations' using Ruff/isort 2023-12-21 13:13:31 +02:00
Andrew Murray
4b308dc2bf
Merge pull request #7488 from bgilbert/jpeg-restart
Allow configuring JPEG restart marker interval on save
2023-11-14 23:42:50 +11:00
Benjamin Gilbert
e572722479 Allow configuring JPEG restart marker interval on save
libjpeg allows specifying the marker interval either in MCU blocks or in
MCU rows.  Support both, via separate parameters, rather than requiring
callers to do the math.

Co-authored-by: Andrew Murray <radarhere@users.noreply.github.com>
2023-10-31 17:47:25 -05:00
Andrew Murray
e10a58ccce Concatenate multiple EXIF markers 2023-10-26 21:46:38 +11:00
Benjamin Gilbert
4d7372bfd0 Implement streamtype=1 option for tables-only JPEG encoding
We already support streamtype=2 to skip producing JPEG tables, but
streamtype=1, which skips everything but the tables, was never implemented.
The streamtype=1 stub code dates to Git pre-history, so it's not
immediately clear why.  Implement the missing support.

jpeg_write_tables() can't resume after a full output buffer (it fails with
JERR_CANT_SUSPEND), so it might seem that Pillow needs to pre-compute the
necessary buffer size.  However, in the normal case of producing an
interchange stream, the tables are written via the same libjpeg codepath
during the first jpeg_write_scanlines() call, and table writes aren't
resumable there either.  Thus, any buffer large enough for the normal case
will also be large enough for a tables-only file.

The streamtype option isn't documented and this commit doesn't change that.
It does add a test though.

Co-authored-by: Andrew Murray <radarhere@users.noreply.github.com>
2023-10-24 20:30:45 -05:00
Andrew Murray
7319d86328 Catch struct.error from truncated EXIF when reading DPI 2023-10-12 10:13:46 +11:00
Andrew Murray
a3fd009875 Match warning message 2023-10-06 17:31:06 +11:00
Andrew Murray
f24222a954 Merge branch 'main' into jpeg_xmp 2023-10-06 17:23:53 +11:00
Andrew Murray
0a28840bc4 Expand buffer size when optimizing or progressive 2023-08-19 14:34:08 +10:00
Andrew Murray
3f78ba80f9 Do not require curly bracket in tag name 2023-07-10 22:05:28 +10:00
Andrew Murray
2488167f33 Allow for zero-byte padding at end of XMP data 2023-07-10 22:00:30 +10:00
Matthew Treinish
6215cd3e0f
Update tests to handle no longer raising 2023-07-06 09:28:35 -04:00
Andrew Murray
93e507294b Only assert image is similar 2023-05-05 08:19:43 +10:00
Ishant Mrinal Haloi
5377b0735f add _repr_jpg_ for ipython display
Signed-off-by: Ishant Mrinal Haloi <mrinal.haloi11@gmail.com>
2023-05-04 21:43:57 +05:30
Hugo van Kemenade
52f4fc59a2 Remove JpegImagePlugin.convert_dict_qtables, deprecated in 8.3.0 2023-04-06 16:11:36 +03:00
Hugo van Kemenade
d2e77de070
Merge pull request #6853 from radarhere/child_images
Relaxed child images check to allow for libjpeg
2023-02-12 07:26:18 +02:00
Andrew Murray
bb524018d3 Raise an error when EXIF data is too long 2023-02-11 16:20:27 +11: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
Andrew Murray
97385d7cc7 Relaxed child images check to allow for libjpeg 2023-01-02 19:54:12 +11:00
Andrew Murray
5257d561c0
Merge pull request #6748 from radarhere/exif_ifd
Added IFD enum to ExifTags
2022-12-14 07:33:14 +11:00
Andrew Murray
c2a42655e1 Allow get_child_images to access JPEG thumbnails 2022-12-06 19:30:53 +11:00
Sam Mason
1ed1a3a971
make sure passing a blank comment removes existing comment 2022-12-03 15:07:37 +00:00
Andrew Murray
525c01143a Test that comment is reread 2022-12-03 09:59:22 +11:00
pre-commit-ci[bot]
e9f4858491 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2022-12-02 18:07:10 +00:00
Sam Mason
d822d85af6
support round-tripping JPEG comments 2022-12-02 17:57:19 +00:00
Mark Mayo
69baeccf2e some pylint warnings
Fixed some pylint issues
2022-10-13 15:20:11 +13:00
Andrew Murray
c259ac492f Parametrized tests 2022-10-03 16:57:42 +11:00
Hugo van Kemenade
d42efd7ec0
Update URL (#16) 2022-04-28 08:26:57 +10:00
Andrew Murray
ae8de77721 Raise ValueError when trying to save empty image 2022-03-28 21:18:53 +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
1059eb5376 If appended EOI did not work, do not keep trying 2022-01-01 21:04:32 +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
98aa0f10ad pre-commit autoupdate --freeze 2021-08-12 21:50:09 +10:00
Alexander Karpinsky
3abe5e884b Add TypeError handling to pass corrupted dpi value in exif 2021-07-26 16:13:01 +03:00
Andrew Murray
d11c794997 Merge branch 'master' into 4962-jpeg-zigzag 2021-06-30 20:54:55 +10:00
Andrew Murray
0aa8bd00e7 Added warning if defusedxml is not found 2021-06-30 11:29:13 +10:00
Andrew Murray
d9d811ff21 Replaced xml.etree.ElementTree with defusedxml.ElementTree 2021-06-30 11:28:44 +10:00
Andrew Murray
a1d8d638bf
Checked complete length of value 2021-06-29 19:41:00 +10:00
Andrew Murray
cd31dae0d1 Added getxmp() for PNG 2021-06-12 13:57:14 +10:00
Andrew Murray
c1fbe2d975 Corrected getxmp() descending into XML 2021-06-12 11:58:11 +10:00
Andrew Murray
18e204df05 Removed DPI rounding from JPEG loading 2021-05-07 21:23:29 +10:00
Andrew Murray
6967f3519f Test when "adobe_transform" is unable to be read 2021-04-20 20:53:50 +10:00
Andrew Murray
4351c37fc4 Corrected adobe_transform value 2021-04-15 21:49:51 +10:00
Eric Soroos
1c872a9eda lint stuff 2021-04-10 16:58:01 +02:00
Eric Soroos
a3a69c8385 conditional mark for valgrind ignore 2021-04-09 23:53:24 +02:00
Andrew Murray
2c8684c525 Moved getxmp() into JpegImageFile 2021-04-01 22:28:37 +11:00
Andrew Murray
c52b45df62 Removed automatic retrieval of GPS IFD 2021-03-15 12:33:06 +11:00
Andrew Murray
3495b319bd Replaced various instances of assert_image_similar with assert_image_similar_tofile 2021-02-21 22:22:29 +11:00