From 4fa6174d1cf56c7e1f294853041fc17cedb91efa Mon Sep 17 00:00:00 2001 From: Mike L Date: Wed, 30 Apr 2025 00:38:59 +0200 Subject: [PATCH] Fix handling LIST before anih --- ani2cape.py | 5 ++++- ani2gif.py | 5 ++++- ani2spritesheet.py | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/ani2cape.py b/ani2cape.py index ac01cc0..67feffb 100644 --- a/ani2cape.py +++ b/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('发现自定义速率!') diff --git a/ani2gif.py b/ani2gif.py index 818f5fd..e00ae28 100644 --- a/ani2gif.py +++ b/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('发现自定义速率!') diff --git a/ani2spritesheet.py b/ani2spritesheet.py index c25bd9e..4332bbe 100644 --- a/ani2spritesheet.py +++ b/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('发现自定义速率!')