Merge pull request #6880 from radarhere/eps

This commit is contained in:
Hugo van Kemenade 2023-01-11 18:09:53 +02:00 committed by GitHub
commit c683f048eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -316,21 +316,22 @@ class EpsImageFile(ImageFile.ImageFile):
def _find_offset(self, fp):
s = fp.read(160)
s = fp.read(4)
if s[:4] == b"%!PS":
if s == b"%!PS":
# for HEAD without binary preview
fp.seek(0, io.SEEK_END)
length = fp.tell()
offset = 0
elif i32(s, 0) == 0xC6D3D0C5:
elif i32(s) == 0xC6D3D0C5:
# FIX for: Some EPS file not handled correctly / issue #302
# EPS can contain binary data
# or start directly with latin coding
# more info see:
# https://web.archive.org/web/20160528181353/http://partners.adobe.com/public/developer/en/ps/5002.EPSF_Spec.pdf
offset = i32(s, 4)
length = i32(s, 8)
s = fp.read(8)
offset = i32(s)
length = i32(s, 4)
else:
msg = "not an EPS file"
raise SyntaxError(msg)