npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

sequence-canvas

v1.0.0

Published

Frame-by-frame reproduction of images in HTML Canvas

Downloads

10

Readme

sequence-canvas

Frame-by-frame reproduction of images in HTML Canvas

https://jsfiddle.net/ehoop1337/ukg3L75y/

Installation

Package Manager

    npm install sequence-canvas

ES Module

    import SequenceCanvas from 'sequence-canvas';
    
    const canvas = new SequenceCanvas({
      // settings
    });

CommonJS

    const SequenceCanvas = require('sequence-canvas');
    
    const canvas = new SequenceCanvas({
      // settings
    });

Script

HTML

    <script src="sequence-canvas.js"></script>
    <script>
        const canvas = new SequenceCanvas({
            // settings
        });
    </script>

CDN

https://cdn.jsdelivr.net/gh/ehoop1337/sequence-canvas/lib/sequence-canvas.js

Example

const canvas = new SequenceCanvas({
  // required object
  canvas: {
    // required property
    element: document.querySelector('canvas'),
    width: innerWidth,
    height: innerHeight,
  },
  // required object
  images: {
    // required property
    paths: ['../img/01.webp', '../img/02.webp', '../img/03.webp'],
    options: {
      size: {
        width: 400,
        height: 400,
      },
      position: {
        x: innerWidth / 2 - 200,
        y: innerHeight / 2 - 200
      }
    }
  },
  init: true,
  direction: -1,
  loop: false,
  fps: 30,
  startIndex: 0,
  finishIndex: 2,
  currentIndex: 0,
  startImmediately: false,
  startAfterLoaded: true,
  logging: true,
  on: {
    init: function () {
      console.log('init');
    }
  }
});

canvas.on('stop', function() { console.log('stop')});

Settings

Required

| Option | Type | Description | |----------------|-------------------|----------------------------------------------------------| | canvas | object | An object that has an element and images property. | | canvas.element | HTMLCanvasElement | Need to pass HTMLCanvasElement. | | images | object | An object that has the paths and options properties. | | images.paths | string[] | An array of strings with paths to images. |

Optional

| Option | Type | Default | Description | |----------------------------|---------|-------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | canvas.width | number | canvas.element.width | Width of the canvas. | | canvas.height | number | canvas.element.height | Height of the canvas | | images.options | object | | An object containing images settings. | | images.options.position | object | | It can be used without specifying the trim and size properties. | | images.options.position.x | number | | The X coordinate on the canvas where the image will be placed. | | images.options.position.y | number | | The Y coordinate on the canvas where the image will be placed. | | images.options.trim | object | | It cannot be used without specifying the position and size properties. | | images.options.trim.x | number | | The X coordinate of the starting point of the crop. | | images.options.trim.y | number | | The Y coordinate of the starting point of the crop. | | images.options.trim.width | number | | The width of the cropped image. | | images.options.trim.height | number | | The height of the cropped image. | | images.options.size | object | | It cannot be used without specifying the position property. | | images.options.size.width | number | | The applied width of the image (you can stretch or compress the image). | | images.options.size.height | number | | The applied height of the image (you can stretch or compress the image). | | init | boolean | true | Initializes the library in full. Starts loading images and sets the canvas dimensions. | | direction | number | 1 | Frame change direction. 1 is forward, -1 is back. | | loop | boolean | true | Looping rendering. | | fps | number | 60 | Number of frames per second. Range from 1 to 60. | | startIndex | number | 0 | The lower border of the render. | | finishIndex | number | images.length - 1 | The upper border of the render. | | currentIndex | number | 0 | Specifies which index in the image array is currently being rendered. During initialization, it will call the play method, not start if it differs from the startIndex property. | | startImmediately | boolean | false | Start immediately after loading the first image. | | startAfterLoaded | boolean | true | Starts rendering immediately after loading all images. | | logging | boolean | false | Output to the console information about the rendering of a certain image. |

Methods

| Method | Description | |-----------------|---------------------------------------------------------------------------------------------------------------------| | start | Starts rendering from the image index specified in startIndex. | | play | Plays rendering. | | pause | Pauses rendering. | | stop | Stops rendering and draws images with index startIndex. | | on | Adds an event listener. | | off | Removes an event listener. | | setCurrentImage | Sets the value for the currentImage properties. Make sure that the value does not exceed the length of the array. | | getCurrentImage | Gets the value of the currentImage property. | | setSizesCanvas | Sets the dimensions for the canvas { width, height }. | | getSizesCanvas | Gets canvas settings { width, height }. | | setImageOptions | Sets new settings for images { position?: { x, y }, trim?: { x, y, width, height }, size?: { width, height } }. | | getImageOptions | Gets image settings { position: { x, y }, trim: { x, y, width, height }, size: { width, height } }. | | setFps | Sets the value for the fps properties. Range from 1 to 60. | | getFps | Gets the value of the fps property. | | setDirection | Sets the value for the directions properties. The value can be 1 or -1. | | getDirection | Gets the value of the directions property. | | setLoop | Sets the value for the loop properties, boolean value only. | | getLoop | Gets the value of the directions property. | | setStartIndex | Sets the value for the startIndex properties. Make sure that the value does not exceed the length of the array. | | getStartIndex | Gets the value of the startIndex property. | | setFinishIndex | Sets the value for the finishIndex properties. Make sure that the value does not exceed the length of the array. | | getFinishIndex | Gets the value of the finishIndex property. | | getLogging | Gets the value of the logging property. | | enableLogging | Enable logging. | | disableLogging | Disable logging. |

Usage of methods

const canvas = new SequenceCanvas({
  // ...
})
//...
canvas.pause();

Events

| Event | Description | |--------|--------------------------------------------------------------------------------------------------------------| | init | Initialization. | | load | Image loading has started. | | loaded | Finished loading the image. | | render | The picture is drawn on the canvas. | | start | The start method is called, the rendering of images has started from the index specified in startIndex. | | play | The play method is called, the rendering of images has started from the index specified in currentIndex. | | pause | The pause method is called, rendering is on pause. | | stop | The stop method is called, currentIndex borrows a value from startIndex. |

Usage of events

const canvas = new SequenceCanvas({
  // ...
  on: {
    'init': function(event) {
      console.log('init', event);
    }
  }
});
// ...
function pauseHandler() {
  console.log('pause');
}
canvas.on('pause', pauseHandler);
canvas.off('pause', pauseHandler);

Authors

License

MIT