आप 'जूम' आदेशों ड्राइंग से पहले कैनवास संदर्भ स्केलिंग द्वारा एक कैनवास आइटम में परिणाम के लिए तैयार कर सकते हैं एक बड़े आकार पर, आसानी से। उदाहरण के लिए, this example of mine देखें जो आपको ड्रॉ आइटम पर ज़ूम करने और डिफ़ॉल्ट प्रस्तुति पर उपलब्ध विवरण देखने की अनुमति देता है।
ब्राउज़र ज़ूमिंग के साथ समस्या यह है कि एचटीएमएल 5 कैनवास एक जेपीजी या पीएनजी की तरह है, और एसवीजी के विपरीत-व्यक्तिगत पिक्सेल पर आधारित है। यदि आप 10 पिक्सेल में एक सर्कल खींचते हैं और फिर ब्राउज़र को 50 पिक्सल तक ज़ूम करने के लिए बताते हैं तो ब्राउजर एक चिकनी सर्कल खींचने के लिए डेटा "आविष्कार" नहीं कर सकता है। सबसे अच्छा यह कर सकता है कि 'बड़े पिक्सल' को थोड़ा आसान बनाने की कोशिश करने के लिए छवि इंटरपोलेशन प्रदान करें।
समाधान
एक छवि के साथ, आप पिक्सल (जैसे 1000x800) का एक बहुत साथ एक तस्वीर ले जा सकते हैं और एक अलग, छोटे आकार (उदाहरण के लिए 250x200) में यह प्रदर्शित करने के लिए ब्राउज़र को बताता है। जब ब्राउजर ज़ूम करता है, तो में प्रदर्शित करने के लिए अधिक पिक्सल हैं। उदाहरण के लिए:
<img src="1000x800.jpg" style="width:250px; height:200px">
आप कैनवास के साथ ऐसा ही कर सकते हैं। डेटा कैनवास में height
और width
विशेषताओं (HTML या जावास्क्रिप्ट में) द्वारा निर्दिष्ट पिक्सल की संख्या डेटा है। आप अलग-अलग सीएसएस डिस्प्ले साइज (ऊपर की तरह) को छोटे आकार में निर्दिष्ट कर सकते हैं। आपको अपने मौजूदा कैनवास ड्राइंग कोड को संशोधित करने की भी आवश्यकता नहीं है; बस:
height
और अपने कैनवास के width
एक विशेष पहलू से (उदाहरण के लिए 4),
- उपयोग सीएसएस सब से पहले प्रदर्शन ऊंचाई निर्धारित करने के लिए और वापस मूल आकार के लिए चौड़ाई, और फिर
- समायोजित करें अन्य ड्राइंग कमांड,
ctx.scale(4,4)
के साथ अपने संदर्भ को स्केल करें।
संपादित: मैं इस का एक उदाहरण यहां बनाई है: अतिरिक्त बोनस के रूप
:
http://jsfiddle.net/u5QPq/embedded/result/ (code)
यहाँ यह कैसा है जब आप में ज़ूम लग रहा है , आपके कैनवास भी प्रिंट अधिक सुचारू रूप से (यदि कोई पेड़ों की हत्या में है)।
+1, बहुत अच्छा उदाहरण – Joe
आपके उत्तर के लिए धन्यवाद। मुझे यही चाहिए। :-) – st4rbuck
@ st4rbuck आपका स्वागत है। ध्यान दें कि अगर इस उत्तर ने आपके प्रश्न को हल किया है तो आपको इसे "स्वीकार" करना चाहिए: [बड़े चेकमार्क पर क्लिक करें] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)। पेड़ टिप्पणी के लिए – Phrogz