Browse Source

Fix handling LIST before anih

Mike L 1 month ago
parent
commit
4fa6174d1c
3 changed files with 12 additions and 3 deletions
  1. 4 1
      ani2cape.py
  2. 4 1
      ani2gif.py
  3. 4 1
      ani2spritesheet.py

+ 4 - 1
ani2cape.py

@@ -43,10 +43,13 @@ def analyzeANI(f):
         return {'code': -1, 'msg': 'File is not a ANI File!'}
     logging.debug('魔数检查完成!')
     frameRate = (1/60)*1000
+    readANIH = False
     while (True):
         chunkName = f.read(4)
-        if chunkName == b'LIST':
+        if chunkName == b'LIST' and readANIH:
             break
+        if chunkName == b'anih':
+            readANIH = True
         chunkSize = int.from_bytes(f.read(4), byteorder='little', signed=False)
         if chunkName.lower() == b'rate':
             logging.debug('发现自定义速率!')

+ 4 - 1
ani2gif.py

@@ -17,10 +17,13 @@ def analyzeANIFile(filePath):
             return {"code":-1,"msg":"File is not a ANI File!"}
         logging.debug('魔数检查完成!')
         frameRate = (1/60)*1000
+        readANIH = False
         while(True):
             chunkName = f.read(4)
-            if chunkName == b'LIST':
+            if chunkName == b'LIST' and readANIH:
                 break
+            if chunkName == b'anih':
+                readANIH = True
             chunkSize = int.from_bytes(f.read(4), byteorder='little', signed=False)
             if chunkName.lower() == b'rate':
                 logging.debug('发现自定义速率!')

+ 4 - 1
ani2spritesheet.py

@@ -17,10 +17,13 @@ def analyzeANIFile(filePath):
             return {"code":-1,"msg":"File is not a ANI File!"}
         logging.debug('魔数检查完成!')
         frameRate = (1/60)*1000
+        readANIH = False
         while(True):
             chunkName = f.read(4)
-            if chunkName == b'LIST':
+            if chunkName == b'LIST' and readANIH:
                 break
+            if chunkName == b'anih':
+                readANIH = True
             chunkSize = int.from_bytes(f.read(4), byteorder='little', signed=False)
             if chunkName.lower() == b'rate':
                 logging.debug('发现自定义速率!')