是的,这可以通过<canvas>
.
function resize(img, width, height) {
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
canvas.width = width;
canvas.height = height;
context.drawImage(img, 0, 0, width, height);
img.src = canvas.toDataURL('image/png');
}
我会发布 JSFiddle,但似乎他们的服务器已关闭。这是用法。
var image = document.getElementById('myImage');
resize(image, image.width * 0.75, image.height * 0.75);
正如评论中所说,这在浏览器上对于更大的图像来说是密集的。
注意:您只能对本地托管的图像执行此操作。如果您尝试传入src
来自不同域的图像,您将收到SECURITY_ERR: DOM
.