是否有一种不使用画布就可以使用图像的getImageData方法的方式?我想要获取图像上鼠标位置的像素颜色。
是否有一种不使用画布就可以使用图像的getImageData方法的方式?我想要获取图像上鼠标位置的像素颜色。
不行。
但是可以通过内存中的canvas获取图像数据,这很快也很容易:
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
var img = document.getElementById('someImageId');
context.drawImage(img, 0, 0 );
var theData = context.getImageData(0, 0, img.width, img.height);
为了避免在每次点击时构建它,您可以保留theData
变量。
请注意,如果图像来自另一个域,这将无法正常工作(因此,如果您使用file://
而不是http://
打开您的HTML文件,则无法正常工作)。
getImageData
可能存在漏洞,而是用于防止非法XSS的安全措施更像是一把大锤而不是手术刀? - Shmiddty