Skip to content

JamesNimlos/pixel-flow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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()