Skip to content

Commit ccfc252

Browse files
committed
Use n_frames and _seek_check
1 parent f5d9838 commit ccfc252

File tree

2 files changed

+7
-8
lines changed

2 files changed

+7
-8
lines changed

Tests/test_file_ani.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
def test_aero_busy() -> None:
1111
with Image.open("Tests/images/ani/aero_busy.ani") as im:
1212
assert im.size == (64, 64)
13-
assert im.info["frames"] == 18
13+
assert im.n_frames == 18
1414

1515
with Image.open("Tests/images/ani/aero_busy_0.png") as png:
1616
assert png.tobytes() == im.tobytes()
@@ -29,7 +29,7 @@ def test_aero_busy() -> None:
2929
def test_posy_busy() -> None:
3030
with Image.open("Tests/images/ani/posy_busy.ani") as im:
3131
assert im.size == (96, 96)
32-
assert im.info["frames"] == 77
32+
assert im.n_frames == 77
3333

3434
with Image.open("Tests/images/ani/posy_busy_0.png") as png:
3535
assert png.tobytes() == im.tobytes()
@@ -45,7 +45,7 @@ def test_posy_busy() -> None:
4545
def test_stopwtch() -> None:
4646
with Image.open("Tests/images/ani/stopwtch.ani") as im:
4747
assert im.size == (32, 32)
48-
assert im.info["frames"] == 8
48+
assert im.n_frames == 8
4949

5050
assert im.info["seq"][0] == 0
5151
assert im.info["seq"][2] == 0
@@ -132,7 +132,7 @@ def test_save() -> None:
132132
)
133133

134134
with Image.open(output, formats=["ANI"]) as im:
135-
assert im.info["frames"] == 6
135+
assert im.n_frames == 6
136136
assert im.info["seq"] == [0, 2, 4, 1, 3, 5, 0, 1, 0, 1]
137137
assert im.info["rate"] == [1, 2, 3, 1, 2, 3, 1, 2, 3, 4]
138138
assert im.size == (32, 32)

src/PIL/AniImagePlugin.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ def _open(self) -> None:
407407
self.info["rate"] = self.ani.rate
408408

409409
assert self.ani.anih is not None
410-
self.info["frames"] = self.ani.anih["nFrames"]
410+
self.n_frames = self.ani.anih["nFrames"]
411411

412412
self.frame = 0
413413
self.seek(0)
@@ -434,9 +434,8 @@ def load(self) -> Image.core.PixelAccess | None:
434434
return Image.Image.load(self)
435435

436436
def seek(self, frame: int) -> None:
437-
if frame > self.info["frames"] - 1 or frame < 0:
438-
msg = "Frame index out of animation bounds"
439-
raise EOFError(msg)
437+
if not self._seek_check(frame):
438+
return
440439

441440
self.frame = frame
442441

0 commit comments

Comments
 (0)