<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <style> html, body { margin: 0; } </style> <body> <canvas id="dest" height="100" width="100"></canvas> <script> var sourceWidth = 50; var sourceHeight = 50; var smoothingEnabled = false; var destCanvas = document.getElementById('dest'); var sourceCanvas = document.createElement('canvas'); sourceCanvas.width = sourceWidth; sourceCanvas.height = sourceHeight; var sourceCtx = sourceCanvas.getContext('2d'); sourceCtx.fillStyle = "#00FFFF"; sourceCtx.fillRect(0, 0, sourceWidth, sourceHeight); sourceCtx.fillStyle = "#000000"; sourceCtx.fillRect(5,5,40,40); var destCtx = destCanvas.getContext('2d'); destCtx.fillStyle = "#FF0000"; destCtx.fillRect(0, 0, destCanvas.width, destCanvas.height); destCtx.imageSmoothingEnabled = smoothingEnabled; // 4 arguments, the source origin is not 0,0, the dest size is provided // The source canvas will copied to the 50, 50 position of the destination canvas and // on an area of 50x50 pixels destCtx.drawImage(sourceCanvas, 50, 50, 50, 50); </script> </body> </html>