javascript - 裁剪缩小图像

标签 javascript html canvas

我不太确定如何描述这个问题,所以让我用一个例子来解释一下。

  • 假设我有一个宽度和高度为 600x400 的 Canvas 设置。

  • 现在,我可以选择一个图像(可以是任何尺寸,但通常大于 600x400)并将其绘制在 Canvas 上。

  • 现在我需要将原始图像(假设在本例中为 1000x500 像素)裁剪为 400x200 像素。

如何执行此操作以确保在 Canvas 上显示缩小图像时裁剪原始大小的图像?

我更喜欢寻找完全客户端的解决方案。

最佳答案

<强> Live Demo

其实很简单。您所需要做的就是将图像绘制到所需大小的 Canvas 上,然后在其上调用 toDataUrl() 来获取结果图像数据。只要将原始图像的内容绘制到裁剪区域,将图像本身绘制到不同的 Canvas 就根本不会影响输出。

var canvas = document.getElementsByTagName("canvas")[0],
    context = canvas.getContext("2d"),
    img = document.getElementsByTagName("img")[0];

canvas.width = 600;
canvas.height = 400;

context.drawImage(img, 0,0,600,400);

var croppedCanvas = document.getElementById("tempCanvas"),
    croppedCtx = croppedCanvas.getContext("2d");

croppedCanvas.width = 400;
croppedCanvas.height = 200;

croppedCtx.drawImage(img, 0, 0);

关于javascript - 裁剪缩小图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13404113/

相关文章:

javascript - 无法读取未定义的属性 'Symbol(Symbol.iterator)'

javascript - 将 onclick 事件添加到模板

html - 在 CSS 中选中复选框时更改 H1 的颜色

canvas - 调试threejs raycaster鼠标坐标

javascript - 如何将表达式添加到 Handlebars 部分参数

javascript - 使用复选框显示和隐藏 Div

javascript - 使用 CryptoJS 在 JavaScript 中进行 AES 加密/解密

html - 使 HTML 表格单元格的内容适合 - 不换行?

javascript - p5.j​​s canvas 带椭圆的绘图路径

javascript - IE9 对 HTML5 Canvas getImageData() 函数存在问题