मैंने getImageData
के साथ एक अजीब समस्या देखी; छवि डेटा प्राप्त होने पर छवि की पारदर्शिता को अनदेखा किया जाता है।getImageData के साथ पारदर्शिता खो गई - एचटीएमएल 5 2 डी संदर्भ
चूंकि किसी भी छवि को canvas
पर अपने छवि डेटा प्राप्त करने से पहले तैयार किया जाना चाहिए, मुझे लगता है कि यह canvas
के साथ अपारदर्शी होने में समस्या थी। लेकिन मैं गलत था, canvas
का प्रयोग drawImage
में एक तर्क के रूप में पारदर्शिता बनाए रखता है।
यहां बताया गया है कि मैंने छवि को कैसे लोड किया;
var load_image = function(name, url, holder, callback) {
var img = new Image();
img.src = url;
img.addEventListener('load', function(e) {
var canvas = make_canvas(e.target.width, e.target.height);
var ctx = canvas.getContext('2d');
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(e.target, 0, 0);
holder[name] = {canvas: canvas, ctx: ctx};
delete e.target;
callback.call();
}, false);
};
callback
बस ड्रॉ समारोह है, जो draw_image
invokes छवि आकर्षित करने के लिए है।
सामान्य संस्करण;
var draw_image = function(ctx, img, sx, sy, w, h, dx, dy) {
ctx.drawImage(img.canvas, sx, sy, w, h, dx, dy, w, h);
};
यह बस drawImage
के लिए एक तर्क के रूप कैनवास लेता है, और परिणाम के रूप में बनाए रखा पारदर्शिता के साथ इरादा है। Example।
छवि डेटा संस्करण;
var draw_image = function(ctx, img, sx, sy, w, h, dx, dy) {
var imagedata = img.ctx.getImageData(sx, sy, w, h);
ctx.putImageData(imagedata, dx, dy);
};
यह एक सामान्य संस्करण में इस्तेमाल एक के रूप में एक ही कैनवास से आवश्यक आयत की छवि डेटा प्राप्त करता है, और कैनवास मैं करने के लिए आकर्षित करने के लिए चाहते हैं पर छवि डेटा डालता है। मेरा मानना है कि पारदर्शिता बनाए रखा जाना चाहिए, लेकिन ऐसा नहीं है। Example। (यह origin-clean
ध्वज की वजह से एक ड्रॉपबॉक्स लिंक है।)
क्या मुझे यह मानने में गलत लगता है कि getImageData
के साथ पारदर्शिता बनाए रखा जाना चाहिए? या क्या मैं इसे गलत तरीके से इस्तेमाल कर रहा हूं?
किसी भी तरह से, वास्तव में सराहना की जाएगी।
मैं देखता हूं, यह बताता है! आपके उत्तर के लिए धन्यवाद! हालांकि, यह वास्तव में कार्यों में एक रिंच फेंकता है। मैं परीक्षण में योजना बना रहा था कि गेम में 'छवियों' के रूप में 'कैनवास' का उपयोग करने के लाभ (रंग मास्किंग, और संदर्भ के बिना परिप्रेक्ष्य परिवर्तन) ओवरहेड से अधिक है या नहीं। अगर मुझे परिवर्तित छवि को आकर्षित करने के लिए एक मध्यवर्ती कैनवास पेश करने की आवश्यकता है, तो मैं प्रसंस्करण के लिए 'छवि' ऑब्जेक्ट्स और मोटा 'कैनवास' का उपयोग करने के लिए भी चिपक सकता हूं। एक बार फिर धन्यवाद! – Rikonator