मैं HTML5 कैनवास के लिए एक सरल ग्रेस्केल फ़िल्टर का एहसास करना चाहता हूं, लेकिन मैं छवि डेटा को पिक्सल के रूप में नहीं ले सकता। मुझे एफएफ और क्रोम से सुरक्षा चेतावनी मिलती है। अंत में फ़िल्टर छवि ग्रे नहीं बनाता है।context.getImageData() ऑपरेशन असुरक्षित है
js:
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var image = new Image();
image.onload = function() {
if (image.width != canvas.width)
canvas.width = image.width;
if (image.height != canvas.height)
canvas.height = image.height;
context.clearRect(0, 0, canvas.width, canvas.height);
context.drawImage(image, 0, 0, canvas.width, canvas.height);
var imageData = context.getImageData(0, 0, canvas.width, canvas.height);
filter(imageData);
context.putImageData(imageData, 0, 0);
}
image.src = "http://i0.gmx.net/images/302/17520302,pd=2,h=192,mxh=600,mxw=800,w=300.jpg";
function filter(imageData){
var d = imageData.data;
for (var i = 0; i < d.length; i += 4) {
var r = d[i];
var g = d[i + 1];
var b = d[i + 2];
d[i] = d[i + 1] = d[i + 2] = (r+g+b)/3;
}
return imageData;
}
BTW, आप 'का उपयोग करना चाहिए आप सही तरीके से इस त्रुटि को संभालने के लिए चाहते हैं, तो catch' प्रयास करें। – starikovs