Sequencer
Sequencer copied to clipboard
A fast(?) fullscreen image-sequence player
Sequencer A fast(?) fullscreen image-sequence player
Demo: https://sequencer.ertdfgcvb.xyz/#2
How to use: The minimum parameters are two filenames of an image sequence or an array of filenames.
In the first case the parser tries to figure out the filename pattern:
const s1 = Sequencer.make({
from : 'pics/pig/DSC04701.JPG',
to : 'pics/pig/DSC04775.JPG',
})
...or just a plain numerical sequence:
const s2 = Sequencer.make({
from : 'pics/dog/1.png',
to : 'pics/dog/100.png',
})
...or with a provided list of filenames:
const s2 = Sequencer.make({
list : [
'1a.png',
'1b.png',
'2.png',
'3.PNG',
'4.jpg',
'img7.png',
'final.jpg'
]
})
All options:
const opts = {
canvas : null, // A valid canvas element
// (will be created if null)
list : [] // An array of paths
// to the images to load;
// as an alternative the three options
// 'from', 'to' and 'step' below
// can be used to fill the array
// programmatically
from : '1.jpg', // First file of the sequence
to : '10.jpg', // Last file of the sequence
step : 1, // Increment: to load only even images
// use 2, etc.
scaleMode : 'cover', // Can be: auto, cover, contain
// as in CSS3,
direction : 'x', // Can be: x, -x, y, -y
// and determines the pointer direction,
// applies only if playMode
// is drag or hover
playMode : 'drag', // Can be: none, drag, hover, auto
loop : 'loop', // Can be: loop, pong, none
interval : 10, // Interval in milliseconds
// between each frame,
// applies only if playMode is auto,
// if set to zero tries to update
// at every frame event
autoLoad : 'all', // Can be: all, first, none,
// if first or none is used the loading
// needs to be triggered manually
// with load().
fitFirstImage : false, // Resizes the canvas to the size of
// the first loaded image
// in the sequence
showLoadedImages : false, // Show images while loading
// the sequence, may be jumpy because
// of async loading <- not a typo
dragAmount : 10, // Distance (in pixels)
// to trigger nextImage(),
// can be < 1, but must be > 0
hiDPI : true, // Use hiDPI if present
imageLoad : function // Callback for each image load
queueComplete : function // Callback for queue complete
};
Changelog:
3.0.1
- fix bug (last image not loaded)
- add makefile
3.0
- better parser
- remove utils.js
- use rollup.js for compression
- minified version is a module
2.1
- update to ECMAScript 2015 (aka ES6)
- script is now an ES6 module (may need transpiling for legacy support)
and loaded as such in the examples
2.0
- multiple instances
- better parser (automatic leading zeroes detection)
- canvas only (2d)
- incremental drag
- removed default loader (a custom one can be implemented via callback)
- cover frame
Todo: - remove 'loop' option (merge with playMode) - area hovering - accept an image array as parameter - accept a spritesheet as parameter - WebGL support - better touch support
Author: Andreas Gysin ertdfgcvb.xyz