Skip to content

Check if a Buffer/Uint8Array is a APNG (Animated PNG) image

License

Notifications You must be signed in to change notification settings

vHeemstra/is-apng

Repository files navigation

is-apng   Latest GitHub release Latest NPM version Build Status

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)
// => true

Note: As of version 1.2, Node versions below 18 are not supported.

Browser  Chrome Edge Firefox Safari Opera

As package through NPM

import isApng from 'is-apng'

const response = await fetch('image.png')
const buffer = await response.arrayBuffer()

isApng(new Uint8Array(buffer))
// => true

As old-school global script tag

Url for latest version: https://unpkg.com/is-apng
Url for specific version: https://unpkg.com/[email protected]/dist/index.js

<script src="https://unpkg.com/is-apng" type="text/javascript"></script>

<script type="text/javascript">
  console.log(typeof isApng);
  // isApng(...)
</script>

As module

Url for latest version: https://unpkg.com/is-apng/dist/index.mjs
Url for specific version: https://unpkg.com/[email protected]/dist/index.mjs

<script type="module">
  import isApng from 'https://unpkg.com/is-apng/dist/index.mjs'

  console.log(typeof isApng);
  // isApng(...)
</script>

or

<script async src="https://unpkg.com/[email protected]/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);
  // 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