APNG文件没有任何明确的方法来检测它们。对于 APNg unawware 应用程序,它们显示为普通的 PNG,并且将显示第一个屏幕。检测它们有点麻烦。
可以通过在IDAT块之前查看数据是否包含acTL块来检测APNG。
此解决方案适用于 Python 的响应如下: https://stackoverflow.com/a/4525194/5997749
def is_apng(a: bytes):
acTL = a.find(b"x61x63x54x4C")
if acTL > 0: # find returns -1 if it cant find anything
iDAT = a.find(b"x49x44x41x54")
if acTL < iDAT:
return True
return False