की सरणी देता है मैं छवि डेटा में हेरफेर करने की कोशिश कर रहा हूं लेकिन छवि को लोड करने और उसके पिक्सेल डेटा प्राप्त करने के बाद मेरी छवि डेटा एरे सभी 0 लौटाती है।जावास्क्रिप्ट छविडेटा 0 के
स्लाइडर और टेक्स्ट बॉक्स जैसे कुछ HTML तत्व हैं। कृपया उनको अनदेखा करें।
एक ImageObject डेटा संरचना जहाँ मैं छवि, pixelData और इतने पर की तरह सभी छवि गुण भंडारण कर रहा हूँ नहीं है ..
मैं पहले छवि को लोड अपने पिक्सेल डेटा और फिर ImageObject.imageData स्टोर करने के लिए एक कॉलबैक वापसी । हालांकि लॉग में ImageObject.data सभी 0 का रिटर्न देता है।
ImageObject = {};
var MainCtx;
var MainCanvas;
//get the image pixel properties
function start()
{
//load up the main canvas and ctx
MainCanvas = document.getElementById("canvas");
MainCtx = MainCanvas.getContext('2d');
//first load up the image and then get its pixel data
ImageObject.loadImage(function(imageData){
ImageObject.imageData = imageData;
ImageObject.data = ImageObject.imageData.data;
console.log(ImageObject.data); // -> data return all 0's in the array
for(var i = 0; i < ImageObject.data.length; i += 4) {
var brightness = 0.34 * ImageObject.data[i] + 0.5 * ImageObject.data[i + 1] + 0.16 * ImageObject.data[i + 2];
// red
ImageObject.data[i] = brightness;
// green
ImageObject.data[i + 1] = brightness;
// blue
ImageObject.data[i + 2] = brightness;
}
ImageObject.ctx.putImageData(ImageObject.imageData,ImageObject.image.width,ImageObject.image.height);
});
}
ImageObject.loadImage = function(callback)
{
ImageObject.image = new Image();
ImageObject.image.src = 'http://www.html5canvastutorials.com/demos/assets/darth-vader.jpg';
ImageObject.image.addEventListener('load',function()
{
MainCtx.drawImage(ImageObject.image,0,0);
callback(ImageObject.getImageData(ImageObject.image));
});
}
ImageObject.getImageData = function(img)
{
this.canvas = getCanvas(img.width,img.height);
this.ctx = this.canvas.getContext('2d');
return this.ctx.getImageData(0,0,this.canvas.width,this.canvas.height);
}
function getCanvas(w,h)
{
var c = document.createElement('canvas');
c.width = w;
c.height = h;
return c;
}
start();
मैं
नीचे jsFiddle लिंक कोई क्या मैं गलत कर रहा हूँ के रूप में एक बार देख ले कृपया साझा किया है?
मेरा अनुमान है कि यहां मुद्दा में रूप में ही है [इस सवाल: getImageData हमेशा लौटने 0] (http://stackoverflow.com/questions/5694599/getimagedata-always-returning-0)।उस प्रश्न में, समाधान यह सुनिश्चित करना है कि आपकी छवि पूरी तरह से लोड हो, न केवल ऑनस्क्रीन बल्कि कैनवास संदर्भ में भी –