Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 3 additions & 10 deletions src/PIL/SpiderImagePlugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,15 +132,15 @@ def _open(self) -> None:
self.istack = int(h[24])
self.imgnumber = int(h[27])

self.n_frames = 1
if self.istack == 0 and self.imgnumber == 0:
# stk=0, img=0: a regular 2D image
offset = hdrlen
self._nimages = 1
elif self.istack > 0 and self.imgnumber == 0:
# stk>0, img=0: Opening the stack for the first time
self.imgbytes = int(h[12]) * int(h[2]) * 4
self.hdrlen = hdrlen
self._nimages = int(h[26])
self.n_frames = int(h[26])
# Point to the first image in the stack
offset = hdrlen * 2
self.imgnumber = 1
Expand All @@ -151,6 +151,7 @@ def _open(self) -> None:
else:
msg = "inconsistent stack header values"
raise SyntaxError(msg)
self.is_animated = self.n_frames > 1
Comment thread
radarhere marked this conversation as resolved.

if self.bigendian:
self.rawmode = "F;32BF"
Expand All @@ -161,14 +162,6 @@ def _open(self) -> None:
self.tile = [ImageFile._Tile("raw", (0, 0) + self.size, offset, self.rawmode)]
self._fp = self.fp # FIXME: hack

@property
def n_frames(self) -> int:
return self._nimages

@property
def is_animated(self) -> bool:
return self._nimages > 1

# 1st image index is zero (although SPIDER imgnumber starts at 1)
def tell(self) -> int:
if self.imgnumber < 1:
Expand Down
Loading