@@ -174,13 +174,14 @@ def _decode_bitonal(self):
174174 are exactly one byte, and so the inter-token whitespace is optional.
175175 """
176176 decoded_data = bytearray ()
177- total_bytes = self .size
177+ total_bytes = self .state . xsize * self . state . ysize
178178
179179 comment_spans = False
180180 while len (decoded_data ) != total_bytes :
181181 block = self ._read_block () # read next block
182182 if not block :
183- raise ValueError ("Reached EOF while reading data" )
183+ # eof
184+ break
184185
185186 while block and comment_spans :
186187 comment_end = self ._find_comment_end (block )
@@ -206,7 +207,7 @@ def _decode_blocks(self, channels=1, depth=8):
206207 maxval = 2 ** (31 if depth == 32 else depth ) - 1
207208 max_len = 10
208209 bytes_per_sample = depth // 8
209- total_bytes = self .size * channels * bytes_per_sample
210+ total_bytes = self .state . xsize * self . state . ysize * channels * bytes_per_sample
210211
211212 comment_spans = False
212213 half_token = False
@@ -216,7 +217,8 @@ def _decode_blocks(self, channels=1, depth=8):
216217 if half_token :
217218 block = bytearray (b" " ) # flush half_token
218219 else :
219- raise ValueError ("Reached EOF while reading data" )
220+ # eof
221+ break
220222
221223 while block and comment_spans :
222224 comment_end = self ._find_comment_end (block )
@@ -254,7 +256,6 @@ def _decode_blocks(self, channels=1, depth=8):
254256 return decoded_data
255257
256258 def decode (self , buffer ):
257- self .size = self .state .xsize * self .state .ysize
258259 rawmode = self .args [0 ]
259260
260261 if self .mode == "1" :
0 commit comments