mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-02-10 16:40:51 +03:00
Merge pull request #2216 from radarhere/open
If WalImageFile opens a file pointer, close
This commit is contained in:
commit
fdeff998df
|
@ -47,11 +47,7 @@ def open(filename):
|
||||||
# FIXME: modify to return a WalImageFile instance instead of
|
# FIXME: modify to return a WalImageFile instance instead of
|
||||||
# plain Image object ?
|
# plain Image object ?
|
||||||
|
|
||||||
if hasattr(filename, "read"):
|
def imopen(fp):
|
||||||
fp = filename
|
|
||||||
else:
|
|
||||||
fp = builtins.open(filename, "rb")
|
|
||||||
|
|
||||||
# read header fields
|
# read header fields
|
||||||
header = fp.read(32+24+32+12)
|
header = fp.read(32+24+32+12)
|
||||||
size = i32(header, 32), i32(header, 36)
|
size = i32(header, 32), i32(header, 36)
|
||||||
|
@ -60,6 +56,7 @@ def open(filename):
|
||||||
# load pixel data
|
# load pixel data
|
||||||
fp.seek(offset)
|
fp.seek(offset)
|
||||||
|
|
||||||
|
Image._decompression_bomb_check(size)
|
||||||
im = Image.frombytes("P", size, fp.read(size[0] * size[1]))
|
im = Image.frombytes("P", size, fp.read(size[0] * size[1]))
|
||||||
im.putpalette(quake2palette)
|
im.putpalette(quake2palette)
|
||||||
|
|
||||||
|
@ -74,6 +71,11 @@ def open(filename):
|
||||||
|
|
||||||
return im
|
return im
|
||||||
|
|
||||||
|
if hasattr(filename, "read"):
|
||||||
|
return imopen(filename)
|
||||||
|
else:
|
||||||
|
with builtins.open(filename, "rb") as fp:
|
||||||
|
return imopen(fp)
|
||||||
|
|
||||||
quake2palette = (
|
quake2palette = (
|
||||||
# default palette taken from piffo 0.93 by Hans Häggström
|
# default palette taken from piffo 0.93 by Hans Häggström
|
||||||
|
|
Loading…
Reference in New Issue
Block a user