Skip to content

Commit e72361d

Browse files
committed
Simplify setimage() by always using extents
1 parent d4f7812 commit e72361d

2 files changed

Lines changed: 7 additions & 41 deletions

File tree

Tests/test_imagefile.py

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -295,19 +295,6 @@ def test_setimage(self) -> None:
295295
with pytest.raises(ValueError):
296296
MockPyDecoder.last.set_as_raw(b"\x00")
297297

298-
def test_extents_none(self) -> None:
299-
buf = BytesIO(b"\x00" * 255)
300-
301-
im = MockImageFile(buf)
302-
im.tile = [ImageFile._Tile("MOCK", None, 32, None)]
303-
304-
im.load()
305-
306-
assert MockPyDecoder.last.state.xoff == 0
307-
assert MockPyDecoder.last.state.yoff == 0
308-
assert MockPyDecoder.last.state.xsize == 200
309-
assert MockPyDecoder.last.state.ysize == 200
310-
311298
def test_negsize(self) -> None:
312299
buf = BytesIO(b"\x00" * 255)
313300

@@ -371,21 +358,6 @@ def test_setimage(self) -> None:
371358
assert MockPyEncoder.last.state.xsize == xsize
372359
assert MockPyEncoder.last.state.ysize == ysize
373360

374-
def test_extents_none(self) -> None:
375-
buf = BytesIO(b"\x00" * 255)
376-
377-
im = MockImageFile(buf)
378-
im.tile = [ImageFile._Tile("MOCK", None, 32, None)]
379-
380-
fp = BytesIO()
381-
ImageFile._save(im, fp, [ImageFile._Tile("MOCK", None, 0, "RGB")])
382-
383-
assert MockPyEncoder.last
384-
assert MockPyEncoder.last.state.xoff == 0
385-
assert MockPyEncoder.last.state.yoff == 0
386-
assert MockPyEncoder.last.state.xsize == 200
387-
assert MockPyEncoder.last.state.ysize == 200
388-
389361
def test_negsize(self) -> None:
390362
buf = BytesIO(b"\x00" * 255)
391363

src/PIL/ImageFile.py

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ def _tilesort(t: _Tile) -> int:
101101

102102
class _Tile(NamedTuple):
103103
codec_name: str
104-
extents: tuple[int, int, int, int] | None
104+
extents: tuple[int, int, int, int]
105105
offset: int = 0
106106
args: tuple[Any, ...] | str | None = None
107107

@@ -783,7 +783,7 @@ def setfd(self, fd: IO[bytes]) -> None:
783783
def setimage(
784784
self,
785785
im: Image.core.ImagingCore,
786-
extents: tuple[int, int, int, int] | None = None,
786+
extents: tuple[int, int, int, int],
787787
) -> None:
788788
"""
789789
Called from ImageFile to set the core output image for the codec
@@ -797,18 +797,12 @@ def setimage(
797797
# following c code
798798
self.im = im
799799

800-
if extents:
801-
x0, y0, x1, y1 = extents
802-
else:
803-
x0, y0, x1, y1 = (0, 0, 0, 0)
800+
x0, y0, x1, y1 = extents
804801

805-
if x0 == 0 and x1 == 0:
806-
self.state.xsize, self.state.ysize = self.im.size
807-
else:
808-
self.state.xoff = x0
809-
self.state.yoff = y0
810-
self.state.xsize = x1 - x0
811-
self.state.ysize = y1 - y0
802+
self.state.xoff = x0
803+
self.state.yoff = y0
804+
self.state.xsize = x1 - x0
805+
self.state.ysize = y1 - y0
812806

813807
if self.state.xsize <= 0 or self.state.ysize <= 0:
814808
msg = "Size must be positive"

0 commit comments

Comments
 (0)