Skip to content

Latest commit

 

History

History
73 lines (53 loc) · 2.54 KB

README.md

File metadata and controls

73 lines (53 loc) · 2.54 KB

PixelFlow
npm npm npm npm

an image pixelating JavaScript library

The main demo uses vanilla JavaScript and presents a few images with example manipulations using the library.

There is also a demo using the jQuery plugin and Green Sock Tween in order to animate the pixelating effect, see the original blog post for more information.

The blog post includes a write up of the build process and thought process used for version 1. Version 2 was a full re-factor but the logic used is still the same.


Usage

The library can be installed from npm

npm install --save pixel-flow
let images = Array.from(document.querySelectorAll('img'))
let pixelFlows = images.map((img) => new PixelFlow(img, { resolution: 32 }))
// be aware, creating the pixelate images removes the images from the DOM

// then you can manipulate individual PixelFlow instances
// wait 5 seconds
setTimeout(() => {
  pixelFlows.forEach((pixelFlow) => {
    // animate the pixelated images back to normal over 2 seconds
    pixelFlow.simpleanimate(0, 2)
  })
}, 5000)

jQuery plugin

The jQuery plugin can be installed from npm as well.

npm install --save pixel-flow jquery

This library does not come with jQuery packaged, you must install separately.

import $ from 'jquery'
import 'pixel-flow/jquery'
// Converts the image to a pixelated image at 32 pixel resolution
var $pixel = $('img').first().PixelFlow({ resolution: 32 })

// Runs animation on that same image to return to base image.
// Notice I'm selecting the canvas that replaced the image.
$('canvas').first().PixelFlow('simpleanimate', 0, 2000)

// You should use the original returned reference since the
// element is no longer an img element but a canvas
$pixel.PixelFlow('update', { resolution: 32 })

// or you can access the instance directly by fetching it from
// the jQuery data on the $pixel
var pixel = $pixel.data('plugin_PixelFlow')
pixel.rebase()