चालू करने के लिए कैनवास का उपयोग करें मैं छवियों (लोगो, ऐप आइकन इत्यादि) लेने के लिए एक तरीका ढूंढ रहा हूं और जावास्क्रिप्ट/कैनवास का उपयोग करके उन्हें सफेद (पारदर्शिता को छोड़कर) में परिवर्तित कर रहा हूं। http://jsfiddle.net/4ubyj/गैर-पारदर्शी पिक्सेल सफेद
उत्तर
कैनवास एपीआई जैसी चीजों के लिए विशेष रूप से संयोजन के तरीकों "केवल पिक्सल कि मूल छवि में स्पष्ट नहीं होते पर आकर्षित।" छवि डेटा के साथ गड़बड़ करने से यह बहुत आसान है।
jsFiddle उदाहरण (inlined छवि के साथ अब)
टोपी टिप @ WilliamVanRensselaer की प्रारंभिक बेला करने के लिए।
आपके द्वारा इच्छित समग्र ऑपरेशन source-in
है, जिसका अर्थ है "मैं केवल पेंट करने की कोशिश कर रहे अपारदर्शी हिस्सों को खींचता हूं जहां वे छवि पर अपारदर्शी पिक्सल के शीर्ष पर हैं।"
HTML:
<a href="javascript:doIt()">paint non-transparent regions white</a><br>
<canvas id="canvas" width="600" height="200"></canvas>
जावास्क्रिप्ट:
var canvas = document.getElementById("canvas"),
ctx = canvas.getContext("2d");
imgSrc = "http://d.pr/Td69+";
var b = document.getElementsByTagName("body")[0];
var i = document.createElement("img");
i.src = imgSrc;
i.style.setProperty("display", "none");
i.onload = function() {
ctx.drawImage(i, 0, 0);
}
b.appendChild(i);
window.doIt = function() {
ctx.globalCompositeOperation = "source-in";
ctx.fillStyle = "#ffffff";
ctx.fillRect(0, 0, 600, 200);
}
आपके प्रारंभ करने के लिए कुछ है:
यहाँ मैं अपनी पसंद का (स्थिर छवियों का उपयोग कर, स्पष्ट रूप से) का एक उदाहरण है। अल्फा शून्य नहीं होने पर यह मूल रूप से पिक्सेल को सफेद में बदल देता है, यदि आप चाहते हैं तो आप संशोधन कर सकते हैं।
उदाहरण: http://jsfiddle.net/Q27Qc/
var canvas = document.getElementById("canvas"),
ctx = canvas.getContext("2d");
// Put something on the canvas (can be an image)
ctx.font = "100px Arial";
ctx.fillText("Google", 20, 130);
// Get image data for part of the canvas (to see effects)
var img = ctx.getImageData(20, 40, 80, 100),
imgData = img.data;
// Loops through bytes and change pixel to white if alpha is not zero.
for (var i = 0; i < imgData.length; i += 4) {
if (imgData[i + 3] !== 0) {
imgData[i] = 255;
imgData[i + 1] = 255;
imgData[i + 2] = 255;
}
}
// Draw the results
ctx.putImageData(img, 20, 40);
कोई कारण सफेद करने के लिए भी पूरी तरह से पारदर्शी पिक्सेल के आरजीबी स्थापित करने के लिए नहीं। (यह देखने के लिए परीक्षण करना चाहिए कि क्या उन्हें छोड़ना या परीक्षण से बचना तेज़ है।) किसी भी तरह, मैं आपको +1 कर दूंगा सिवाय इसके कि @ellisben का बेहतर समाधान है। छवि डेटा के साथ गड़बड़ करने के बजाय 'globalCompositeOperation' का उपयोग करने के लिए – Phrogz
- 1. पिक्सेल में ड्राइंग पिक्सेल (पायथन)
- 2. आरजीबी उप-पिक्सेल प्रतिपादन?
- 3. पायगम और ब्लिटिंग: सफेद = ग्रे पर सफेद?
- 4. मैटलैब के साथ बाइनरी छवि में सफेद पिक्सेल की संख्या कैसे गिन सकता हूं?
- 5. सभी पिक्सेल के कुशल पिक्सेल शेडर योग
- 6. Matlab सफेद
- 7. ट्रैकिंग पिक्सेल
- 8. 2 पिक्सेल
- 9. पिक्सेल contenteditable
- 10. 1 पिक्सेल की खाई
- 11. कैनवास ImageData सफेद पिक्सल को हटाएं
- 12. आर - एक पिक्सेल मैट्रिक्स की छवि?
- 13. एंकर टैग के नीचे सफेद स्थान
- 14. मैनुअल अल्फा एक आरजीबी पिक्सेल के साथ एक आरजीबीए पिक्सेल
- 15. एक्सएनए में 2 डी पिक्सेल-बाय-पिक्सेल कैसे आकर्षित करें?
- 16. OpenCV समूहीकरण सफेद पिक्सल
- 17. टैबविड्ज सफेद अग्रभूमि रंग?
- 18. खाली सफेद स्क्रीन?
- 19. CGContextShowTextAtPoint और सफेद स्थान
- 20. पट्टी सफेद रिक्त स्थान
- 21. एनएसबटन सफेद पृष्ठभूमि जब
- 22. एक सफेद आरजीबीए/CSS3
- 23. पेपरक्लिप सफेद पृष्ठभूमि
- 24. एचटीएमएल कैनवास से पिक्सेल?
- 25. मीटर प्रति पिक्सेल
- 26. डायरेक्टएक्स सेट एकल पिक्सेल
- 27. मिमी पिक्सेल संकल्प मिमी
- 28. जावास्क्रिप्ट पिक्सेल मान जोड़ें?
- 29. जावा: फ़ॉन्ट्स और पिक्सेल
- 30. सीएसएस - प्रतिशत या पिक्सेल?
+1। यह अन्य (पूरी तरह से सही) समाधान की तुलना में तेजी से gobs होना चाहिए। – Phrogz
यह सही है, ellisbben! फोरोग ने उल्लेख किया है कि न केवल यह तेज़ है, बल्कि यह मूल अनुमति के मुद्दों से भी बचाता है, जो इसे विभिन्न परिदृश्यों में अधिक लागू करता है। चीयर्स! –