Giter VIP home page Giter VIP logo

emupedia-library-webglimagefilter's Introduction

WebGLImageFilter

Fast image filters for Browsers with WebGL support

MIT License

Demo: phoboslab.org/log/2013/11/webgl-image-filter

Construct a chain of image filters and apply them to an Image or Canvas element. All filters are executed by WebGL Shaders which makes them pretty fast.

Please also have a look at the excellent glfx.js by @evanw.

Usage

// Synopsis: create the filter object, add filters to it and apply
// it to an image

// Example:
try {
	var filter = new WebGLImageFilter();
}
catch( err ) {
	// Handle browsers that don't support WebGL
}

filter.addFilter('hue', 180);
filter.addFilter('negative');
filter.addFilter('blur', 7);
var filteredImage = filter.apply(inputImage);

// The 'filteredImage' is a canvas element. You can draw it on a 2D canvas
// or just add it to your DOM

// Use .reset() to clear the current filter chain. This is faster than creating a new
// WebGLImageFilter instance
filter.reset();

Filters

Main filters

  • colorMatrix( matrix ) apply a the 5x5 color matrix (Array[20]), similar to Flash's ColorMatrixFilter
  • convolution( matrix ) apply a 3x3 convolution matrix (Array[9])
  • blur( size ) blur with size in pixels

Presets using the main filters

  • brightness( amount ) change brightness. 1 increases the it two fold, -1 halfes it
  • saturation( amount ) change saturation. 1 increases the it two fold, -1 halfes it
  • contrast( amount ) change contrast. 1 increases the it two fold, -1 halfes it
  • negative() invert colors
  • hue( rotation ) rotate the hue, values are 0-360
  • desaturate() desaturate the image by all channels equally
  • desaturateLuminance() desaturate the image taking the natural luminace of each channel into acocunt
  • sepia() sepia colors
  • brownie() vintage colors
  • vintagePinhole() vintage colors
  • kodachrome() vintage colors
  • technicolor() vintage colors
  • detectEdges() detect edges
  • sobelX() detect edges using a horizontal sobel operator
  • sobelY() detect edges using a vertical sobel operator
  • sharpen( amount ) sharpen
  • emboss( size ) emboss effect with size in pixels
  • polaroid() polaroid camera effect
  • shiftToBGR() shift colors from RGB to BGR

emupedia-library-webglimagefilter's People

Contributors

phoboslab avatar sgaurav avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.