diff options
-rw-r--r-- | Lib/imghdr.py | 4 | ||||
-rw-r--r-- | Lib/test/imghdrdata/python-raw.jpg | bin | 0 -> 525 bytes | |||
-rw-r--r-- | Lib/test/test_imghdr.py | 1 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2021-06-30-11-34-35.bpo-44539.nP0Xi4.rst | 1 |
4 files changed, 5 insertions, 1 deletions
diff --git a/Lib/imghdr.py b/Lib/imghdr.py index 6e01fd8..afcb677 100644 --- a/Lib/imghdr.py +++ b/Lib/imghdr.py @@ -35,9 +35,11 @@ def what(file, h=None): tests = [] def test_jpeg(h, f): - """JPEG data in JFIF or Exif format""" + """JPEG data with JFIF or Exif markers; and raw JPEG""" if h[6:10] in (b'JFIF', b'Exif'): return 'jpeg' + elif h[:4] == b'\xff\xd8\xff\xdb': + return 'jpeg' tests.append(test_jpeg) diff --git a/Lib/test/imghdrdata/python-raw.jpg b/Lib/test/imghdrdata/python-raw.jpg Binary files differnew file mode 100644 index 0000000..11940b3 --- /dev/null +++ b/Lib/test/imghdrdata/python-raw.jpg diff --git a/Lib/test/test_imghdr.py b/Lib/test/test_imghdr.py index b2d1fc8..ca0a0b2 100644 --- a/Lib/test/test_imghdr.py +++ b/Lib/test/test_imghdr.py @@ -16,6 +16,7 @@ TEST_FILES = ( ('python.pgm', 'pgm'), ('python.pbm', 'pbm'), ('python.jpg', 'jpeg'), + ('python-raw.jpg', 'jpeg'), # raw JPEG without JFIF/EXIF markers ('python.ras', 'rast'), ('python.sgi', 'rgb'), ('python.tiff', 'tiff'), diff --git a/Misc/NEWS.d/next/Library/2021-06-30-11-34-35.bpo-44539.nP0Xi4.rst b/Misc/NEWS.d/next/Library/2021-06-30-11-34-35.bpo-44539.nP0Xi4.rst new file mode 100644 index 0000000..f5e831a --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-06-30-11-34-35.bpo-44539.nP0Xi4.rst @@ -0,0 +1 @@ +Added support for recognizing JPEG files without JFIF or Exif markers. |