1.0.1 • Published 3 years ago

apng-canvas-typescript v1.0.1

Weekly downloads
4
License
MIT
Repository
github
Last release
3 years ago

This Library is based on

"name": "apng-canvas",
"version": "2.1.3",
"author": "David Mzareulyan",
"description": "Library for displaing animated PNG files in browsers with canvas support",
"keywords": [
"apng",
"animation",
"animated png",
"canvas"
],
"homepage": "https://github.com/davidmz/apng-canvas"

Thanks for his work!

Introduction

Library to display Animated PNG (Wikipedia, specification) in a browser using canvas

You can totally control it.

The library requires support from the following technologies in order to run:

How To Use

<img class="" src="xxxxxxxx" style='opacity:0' />

style='opacity:0' this is important

import APNG from "apng-canvas-typescript";
let apng = new APNG();

api

isSupport

is support apng

apng
  .isSupport()
  .then(() => {
    console.log("not support");
  })
  .catch(() => {
    console.log("support");
  });

animateImage(img,autoplay)

covert apng to canvas data

paramtypeabout
imgHTMLImgElementimg dom
autoplaybooleanauto or not

@return Promise<anim:AnimationCotroller>

var image1 = document.querySelector(".apng-image1");
apng.animateImage(image1, false).then((anim) => {
  anim.play([50, 70]);
  anim.before((ctx, f) => {
    ctx.fillStyle = "red";
    ctx.fillRect(0, 0, 100 + f * 3, 100 + f * 3);
  });
  anim.after((ctx, f) => {
    ctx.fillStyle = "blue";
    ctx.fillRect(200, 200, 100 + f * 3, 100 + f * 3);
  });
});

anim

anim.play(frameArray)

paramtypeabout
frameArrayarraystart,end the frames range you want to play ,start means play to the end

anim.stop()

anim.pause(frame)

paramtypeabout
framenumberstop at the frame number

anim.start()

restart (use with pause)

anim.pause(5);
anim.start();

anim.setOptions({playNum,rate})

paramtypeaboutdefault
playNumnumberplay number0: play again and again :)
ratenumberplay rate1

anim.before(func) & anim.after(func)

ctx:RenderingContext f: frame number

anim.before((ctx, f) => {
  ctx.fillStyle = "red";
  ctx.fillRect(0, 0, 100 + f * 3, 100 + f * 3);
});
anim.after((ctx, f) => {
  ctx.fillStyle = "blue";
  ctx.fillRect(200, 200, 100 + f * 3, 100 + f * 3);
});