2011-09-05 12 views
7

मैं कैनवास, का उपयोग कर एक पेंट ऐप पर काम कर रहा हूं और मैं उपयोगकर्ता को केवल चयनित क्षेत्र में आकर्षित करने का विकल्प देना चाहता हूं। इसके लिए मैं क्लिप() विधि का उपयोग कर सकता हूं। लेकिन यदि मैं चाहता हूं कि उपयोगकर्ता अक्षरों के अंदर भी आकर्षित करने में सक्षम हो - क्या टेक्स्ट के लिए क्लिप() का उपयोग करने का कोई तरीका है? क्या मैं इसे और कर सकता हूं?एचटीएमएल कैनवास: क्लिपिंग और टेक्स्ट

धन्यवाद

+0

मैं पर नव निर्मित प्रभाव डालने के लिए करने के लिए काटा चाहते ड्रा समझ में नहीं आता "लेकिन अगर मैं चाहता हूं कि उपयोगकर्ता अक्षरों के अंदर भी आकर्षित करने में सक्षम हो" भाग –

उत्तर

11

आप यह कर सकते हैं लेकिन क्लिप का उपयोग नहीं कर सकते हैं। क्लिप केवल पथ और पाठ के साथ काम करता है पथ नहीं है।

प्रभाव प्राप्त करने के लिए आपको दूसरी इन-मेमोरी (पृष्ठ पर नहीं) कैनवास का उपयोग करने की आवश्यकता होगी।

  1. एक में स्मृति कैनवास बनाने, चौड़ाई और ऊंचाई पाठ
  2. कि में स्मृति कैनवास
  3. सेट में स्मृति संदर्भ के लिए पाठ ड्रा युक्त करने में सक्षम करने के लिए यह सेट: यहां बताया गया है 'स्रोत-इन' को globalCompositeOperation
  4. बात आप पाठ
  5. उपयोग drawImage(in-memory-canvas, x, y) अपने सामान्य कैनवास
+0

महान उत्तर! धन्यवाद –

+0

अच्छी तरह से, यह कुछ समस्याएं बना रहा है। जब मैं 100% अल्फा रंग से कम "क्लिप" टेक्स्ट खींचता हूं, तो मैं एक ही अल्फा% रंग के साथ एक ही पिक्सेल को फिर से नहीं खींच सकता। –