diff --git a/src/PIL/Image.py b/src/PIL/Image.py index fabe3c8d8..c84e9d28d 100644 --- a/src/PIL/Image.py +++ b/src/PIL/Image.py @@ -539,7 +539,7 @@ class Image: self._mode: str = "" self._size: tuple[int, int] = (0, 0) self.palette = None - self.info = {} + self.info: dict[Any, Any] = {} self.readonly: int = 0 self._exif: Exif | None = None diff --git a/src/PIL/PngImagePlugin.py b/src/PIL/PngImagePlugin.py index 910fa9755..473594dde 100644 --- a/src/PIL/PngImagePlugin.py +++ b/src/PIL/PngImagePlugin.py @@ -863,6 +863,7 @@ class PngImageFile(ImageFile.ImageFile): assert self.png is not None self.dispose: _imaging.ImagingCore | None + self.dispose_extent: tuple[int, int, int, int] if frame == 0: if rewind: self._fp.seek(self.__rewind) @@ -877,7 +878,7 @@ class PngImageFile(ImageFile.ImageFile): self.default_image = self.info.get("default_image", False) self.dispose_op = self.info.get("disposal") self.blend_op = self.info.get("blend") - self.dispose_extent = self.info.get("bbox") + self.dispose_extent = cast(tuple[int, int, int, int], self.info.get("bbox")) self.__frame = 0 else: if frame != self.__frame + 1: @@ -935,7 +936,7 @@ class PngImageFile(ImageFile.ImageFile): self.tile = self.png.im_tile self.dispose_op = self.info.get("disposal") self.blend_op = self.info.get("blend") - self.dispose_extent = self.info.get("bbox") + self.dispose_extent = cast(tuple[int, int, int, int], self.info.get("bbox")) if not self.tile: msg = "image not found in APNG frame"