is-apng

Checks if a Buffer/Uint8Array contains a Animated PNG / APNG image.
[!IMPORTANT]
This is only a quick detect method and does not do full (A)PNG file validation.
For security and file integrity sensitive operations, use a true (A)PNG validator (see also specs).
Install
$ npm install is-apng
Usage
Node.js 
import { readFile } from 'node:fs/promises'
import isApng from 'is-apng'
const buffer = await readFile('image.png')
isApng(buffer)
Note: As of version 1.2, Node versions below 18 are not supported.
Browser

As package through NPM
import isApng from 'is-apng'
const response = await fetch('image.png')
const buffer = await response.arrayBuffer()
isApng(new Uint8Array(buffer))
As old-school global script tag
Url for latest version: https://unpkg.com/is-apng
Url for specific version: https://unpkg.com/is-apng@1.2.0/dist/index.js
<script src="https://unpkg.com/is-apng" type="text/javascript"></script>
<script type="text/javascript">
console.log(typeof isApng);
</script>
As module
Url for latest version: https://unpkg.com/is-apng/dist/index.mjs
Url for specific version: https://unpkg.com/is-apng@1.2.0/dist/index.mjs
<script type="module">
import isApng from 'https://unpkg.com/is-apng/dist/index.mjs'
console.log(typeof isApng);
</script>
or
<script async src="https://unpkg.com/es-module-shims@1.3.6/dist/es-module-shims.js"></script>
<script type="importmap">
{
"imports": {
"is-apng": "https://unpkg.com/is-apng/dist/index.mjs"
}
}
</script>
<script type="module">
import isApng from 'is-apng'
console.log(typeof isApng);
</script>
API
isApng(buffer)
Accepts a Buffer (Node.js) or Uint8Array. Returns a boolean
of whether buffer
is a APNG image.
buffer
The buffer to check.
Based on
License
MIT © Philip van Heemstra