How to Create Vector Masking using HTML5 Canvas

ScreenHunter 63 Aug. 22 07.43 How to Create Vector Masking using HTML5 Canvas
In today’s feature, we bring you Jim Hoskins’ great technique on how you can create vector masking using HTML5 canvas.

First, set up the canvas tag:

<canvas id="c" width="200" height="158"></canvas>

Next, get the canvas and its drawing context in JavaScript:

// Grab the Canvas and Drawing Context
var canvas = document.getElementById('c');
var ctx = canvas.getContext('2d');

Drawing the image in the canvas:
Grab <img> tag from our page, but you can do it using JavaScript.

// Create an image element
var img = document.createElement('IMG');
// When the image is loaded, draw it
img.onload = function () {
 ctx.drawImage(img, 0, 0);
}
// Specify the src to load the image
img.src = "http://i.imgur.com/gwlPu.jpg";

Draw a circle, clip to that path, then draw the image.

// Create an image element
var img = document.createElement('IMG');
// When the image is loaded, draw it
img.onload = function () {
// Save the state, so we can undo the clipping
ctx.save();
// Create a circle
ctx.beginPath();
ctx.arc(106, 77, 74, 0, Math.PI * 2, false);
// Clip to the current path
ctx.clip();
ctx.drawImage(img, 0, 0);
// Undo the clipping
ctx.restore();
}
// Specify the src to load the image
img.src = "http://i.imgur.com/gwlPu.jpg";

You can clip any shapes aside from circle, but you need to define the path.

// Create an image element
var img = document.createElement('IMG');
// When the image is loaded, draw it
img.onload = function () {
// Save the state, so we can undo the clipping
ctx.save();
// Create a shape, of some sort
ctx.beginPath();
ctx.moveTo(10, 10);
ctx.lineTo(100, 30);
ctx.lineTo(180, 10);
ctx.lineTo(200, 60);
ctx.arcTo(180, 70, 120, 0, 10);
ctx.lineTo(200, 180);
ctx.lineTo(100, 150);
ctx.lineTo(70, 180);
ctx.lineTo(20, 130);
ctx.lineTo(50, 70);
ctx.closePath();
// Clip to the current path
ctx.clip();
ctx.drawImage(img, 0, 0);
// Undo the clipping
ctx.restore();
}
// Specify the src to load the image
img.src = "http://i.imgur.com/gwlPu.jpg";

Learn more about this cool technique by clicking on the image.

Incoming search terms for the article:

Related Posts

How To Create A Webpage With A Clean Style Portfolio Layout

How to Create a Sparkling Diamond and Gold Text Effect

Flat Icon Design Inspiration For Mobile Phone

Creating Colorful Effects in Photoshop