<!DOCTYPE html> <meta charset="utf-8"> <link rel=match href=drawimage_canvas_11_ref.html> <style> html, body { margin: 0; } </style> <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; // The source rectangle is larger than the source canvas // The source area is clipped to fit the source image // and the destination are is clipped in the same proportion destCtx.drawImage(sourceCanvas, 0, 0, 100, 100, 0, 0, 50, 50); </script>