diff --git a/Doc/library/imghdr.rst b/Doc/library/imghdr.rst index 9e8952339cc..06faa883d3f 100644 --- a/Doc/library/imghdr.rst +++ b/Doc/library/imghdr.rst @@ -48,6 +48,11 @@ from :func:`what`: +------------+-----------------------------------+ | ``'png'`` | Portable Network Graphics | +------------+-----------------------------------+ +| ``'webp'`` | WebP files | ++------------+-----------------------------------+ + +.. versionchanged:: 3.5 + The *webp* type was added. You can extend the list of file types :mod:`imghdr` can recognize by appending to this variable: diff --git a/Lib/imghdr.py b/Lib/imghdr.py index add2ea88983..fe77e495fb6 100644 --- a/Lib/imghdr.py +++ b/Lib/imghdr.py @@ -110,6 +110,12 @@ def test_bmp(h, f): tests.append(test_bmp) +def test_webp(h, f): + if h.startswith(b'RIFF') and h[8:12] == b'WEBP': + return 'webp' + +tests.append(test_webp) + #--------------------# # Small test program # #--------------------# diff --git a/Lib/test/imghdrdata/python.webp b/Lib/test/imghdrdata/python.webp new file mode 100644 index 00000000000..e824ec7fb1c Binary files /dev/null and b/Lib/test/imghdrdata/python.webp differ diff --git a/Lib/test/test_imghdr.py b/Lib/test/test_imghdr.py index 0ad4343f520..e2a1acab322 100644 --- a/Lib/test/test_imghdr.py +++ b/Lib/test/test_imghdr.py @@ -16,7 +16,8 @@ TEST_FILES = ( ('python.ras', 'rast'), ('python.sgi', 'rgb'), ('python.tiff', 'tiff'), - ('python.xbm', 'xbm') + ('python.xbm', 'xbm'), + ('python.webp', 'webp'), ) class UnseekableIO(io.FileIO): diff --git a/Misc/ACKS b/Misc/ACKS index be089cd7166..68701c486e0 100644 --- a/Misc/ACKS +++ b/Misc/ACKS @@ -42,6 +42,7 @@ Pehr Anderson Erik Andersén Oliver Andrich Ross Andrus +Fabrice Aneche Juancarlo Añez Chris Angelico Jérémy Anger diff --git a/Misc/NEWS b/Misc/NEWS index 72f00dc8c8d..4970afdd766 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -89,6 +89,9 @@ Core and Builtins Library ------- +- Issue #20197: Added support for the WebP image type in the imghdr module. + Patch by Fabrice Aneche and Claudiu Popa. + - Issue #21513: Speedup some properties of IP addresses (IPv4Address, IPv6Address) such as .is_private or .is_multicast.