2012-09-14 9 views
37

मैं एक ड्राइंग एप्लिकेशन पर काम कर रहा हूं जिसके लिए उच्च स्तर की सटीकता की आवश्यकता है, और मैं सोच रहा हूं कि कौन से प्रमुख ब्राउज़र प्लेटफॉर्म (HTML कैनवास तत्व और फ्लैश समेत) सबसे अच्छा उप-पिक्सेल लेआउट सटीकता प्रदान करते हैं, दोनों खींचे जाने के लिए तत्व (कैनवास या फ्लैश में आयतों, ब्राउज़र में पूरी तरह से डीआईवी स्थानांतरित), और पाठ के लिए।प्रमुख ब्राउज़रों में उप-पिक्सेल सटीकता की वर्तमान स्थिति क्या है?

इस साइट और अन्य दोनों पर इस से संबंधित कई पोस्ट हैं, (नीचे सूची देखें), लेकिन कई पुराने हैं, और कोई भी वर्तमान स्थिति को सारांशित नहीं करता है।

मेरी समझ यह है कि फ्लैश के उप-पिक्सेल पोजिशनिंग के लिए मूल समर्थन है, एक पिक्सल के एक बीसवीं तक ऑब्जेक्ट्स को स्थानांतरित करने के लिए, और जब टेक्स्टलाउटफ्रेमवर्क का उपयोग किया जाता है, तो यह सटीकता भी पाठ तक फैली हुई है। कम से कम एक रिपोर्ट है, हालांकि, यह क्रोम में ठीक से काम नहीं करता है। क्या कोई इसकी पुष्टि कर सकता है?

ब्राउज़र में स्थिति की मेरी समझ यह है कि फ़ायरफ़ॉक्स 14+ पेज लेआउट और कैनवास के भीतर पाठ और खींचे गए तत्वों के लिए उप-पिक्सेल स्थिति का समर्थन करता है, लेकिन मैं यह सुनिश्चित करने में सक्षम नहीं हूं कि यह कितना सटीक है ।

मैं क्रोम को समझता हूं (v21 के रूप में) उप-पिक्सेल स्थिति का समर्थन नहीं करता है।

मुझे समझ में आता है कि आईई 9 उप-पिक्सेल पोजीशनिंग का समर्थन नहीं करता है, लेकिन यह आईएस 10 के नीचे लिंक एमएस ब्लॉग पोस्ट से दिखाई देता है।

मुझे नहीं पता कि इसमें कोई मैक/पीसी भिन्नता है या नहीं, और यदि फ्लैश की सटीकता प्लेटफ़ॉर्म और/या ब्राउज़र के बीच भिन्न होती है तो मुझे नहीं पता।

मैं एक सारांश प्रश्न समझता हूं जैसे कि यह कुछ बहस को उकसा सकता है, लेकिन मेरा मानना ​​है कि यह लोगों के लिए उपयोगी उत्तर प्रदान करने के लिए पर्याप्त विशिष्ट है, और उम्मीद है कि यह धागा अब तक स्थिति सटीकता की स्थिति का संदर्भ हो सकता है।

कुछ संदर्भों:

http://blogs.msdn.com/b/ie/archive/2012/02/17/sub-pixel-rendering-and-the-css-object-model.aspx

Sub-pixel rendering in Chrome Canvas

http://johnblackburne.blogspot.co.uk/2011/11/twips.html

http://ejohn.org/blog/sub-pixel-problems-in-css/

Sub Pixel CSS positioning

https://productforums.google.com/forum/?fromgroups=#!topic/chrome/pRt3tiVIkSI

+0

हां, और मामलों को जटिल करने के लिए आगे मुझे जोड़ना चाहिए: क्या तुलना में सटीक? मैं एक एडोब पीडीएफ में या इनडिज़ीन में प्रदान किए गए प्रतिपादन के साथ एक मैच की तलाश में हूं (बिना हाइफेनेशन और अनुच्छेद संरचना के, जहां टेक्स्ट चिंतित है), जो फ्लैश लेआउट और टीएलएफ मैच काफी अच्छी तरह से है, लेकिन कौन से ब्राउज़र काफी सक्षम नहीं हैं (कम से कम यह मेरा शोध अब तक दिखाया गया है)। – JcFx

+1

ठीक है, मैं इस पर एक बक्षीस देने के लिए नाराज हूं, बहुत ध्यान देने के बावजूद, मैंने विभिन्न प्लेटफार्मों की सटीकता के बारे में एक ठोस तथ्य नहीं सीखा है। हालांकि नीचे दोनों उत्तर उपयोगी हैं, न ही वास्तव में विषय को नाखून करते हैं। मेरे पास विषय में जोड़ने के लिए मेरे कुछ शोध हैं लेकिन इस समय इसे लिखने का समय नहीं है, इसलिए मैं स्वचालित पुरस्कार को अपना कोर्स ले जाऊंगा, और शायद बाउंटी सिस्टम बनाने के बारे में मेटा पर कुछ डाल सकता हूं अधिक लचीला। – JcFx

उत्तर

10

वर्तमान में, आप मोज़िला से आईई के साथ रनर अप के रूप में आने के लिए सबसे अच्छा गोल और उप-पिक्सेल समर्थन की उम्मीद कर सकते हैं। आईई अधिक ठीक ट्यून किया जा सकता है, लेकिन उनके रिलीज चक्र इतने लंबे हैं कि मोज़िला उनके आगे रहने की संभावना है।

जहां तक ​​उप-पिक्सेल लेआउट कर रहा है, आप एक बुद्धिमान का पीछा कर रहे हैं, क्योंकि उप-पिक्सेल लाभ एंटी-एलियासिंग मुद्दों में सुधार करता है, स्क्रीन स्थान सटीकता नहीं। उप-पिक्सेल समर्थन के बावजूद आपकी छवि सही स्थिति से 1 पिक्सेल से अधिक सटीक नहीं होगी।

कुछ ब्राउज़र ठीक से ज़ूम नहीं करते हैं, इसलिए उप-पिक्सेल समर्थन के साथ कुछ लेना देना नहीं है, ऐसा इसलिए है क्योंकि वे सटीक स्थिति और सही ढंग से गोल नहीं कर रहे हैं। दूसरे शब्दों में, वे समय-समय पर स्थिति को गोल कर रहे हैं और इससे छवि को ग़लत गठबंधन किया जा सकता है।

+1

उत्तर देने के लिए समय लेने के लिए धन्यवाद। 'वर्तमान में, आप आईओ के साथ मोज़िला से रनर अप के रूप में आने वाले सर्वश्रेष्ठ राउंडिंग और सब-पिक्सेल समर्थन की उम्मीद कर सकते हैं' - क्या आपके पास इसका बैक अप लेने के लिए कोई डेटा है? – JcFx

2

संक्षिप्त उत्तर:
नहीं। यह संभव/दस्तावेज नहीं है।
और यहां तक ​​कि यदि प्रयोगात्मक रूप से निर्धारित किया गया है, तो भविष्य में यह वही रहने की गारंटी नहीं है।

लांग जवाब:
सब-पिक्सेल सत्यता पर, वहाँ कैसे इनपुट कब्जा कर लिया है/गाया के बारे में ब्राउज़र्स/ओएस/HW के बीच विचरण का एक बहुत है। अधिकांश आधुनिक ब्राउज़रों पर एच/डब्ल्यू त्वरण सक्षम होने के साथ, विभिन्न ऑपरेटिंग सिस्टम पर विभिन्न ब्राउज़रों को चलाने वाले विभिन्न पीसी में प्रतिपादन में बड़ी संख्या में बदलाव होते हैं। इतना है कि, प्रत्येक अद्वितीय उपयोगकर्ता को थोड़ा अलग variations in the rendered output of a common sample द्वारा पहचानना भी संभव है।

अंतर्निहित ढांचे में विसंगतियों के बारे में चिंता करने की बजाय, अपने ड्राइंग एप्लिकेशन के यूआई को उन समस्याओं से स्वतंत्र करने के बारे में कैसे करें। तरीकों में से युगल मैं अभी के बारे में सोच सकते हैं:

  1. जूम/बढ़ाया स्तरों पर छवि संपादन की अनुमति दें।

  2. तत्वों के लिए स्नैप-टू-ग्रिड विधि डिज़ाइन करें।

अद्यतन:
"ज़ूम" आपरेशन होगा अपने कस्टम कार्यान्वयन और अंतर्निहित चौखटे के नहीं एक सुविधा। इसलिए यदि आपको पिक्सेल के 1/10 वें के क्रम में उप-पिक्सेल सटीकता की आवश्यकता है, तो आपको एक वेब-ऐप के हिस्से के रूप में 10x_zoom() लागू करने की आवश्यकता होगी जो

से पहले पिक्सेल - > 10x10 पिक्सेल (0,0),
दूसरा पिक्सेल -> 10x10 पिक्सेल से शुरू (11,11)।

इस तरह से किसी के पास डेटा का एक बहुत बड़ा दृश्य होगा, लेकिन ढांचा पूरी तरह से अनजान है और ऑनस्क्रीन-पिक्सेल के लिए सटीक प्रस्तुत करता है (जो हमारे मामले में अब छवि पिक्सेल का 1/10 वां है)।

यह भी ध्यान रखना महत्वपूर्ण है कि यह ऑपरेशन पूरी छवि के लिए एक बार में बहुत मेमोरी का उपभोग करेगा। इसलिए इसे "ज़ूम-विंडो" में छवि के केवल दृश्य भाग के लिए ऐसा करना तेज और कम स्मृति गहन प्रक्रिया होगी।

एक बार आपके ड्राइंग वेब-एप में लागू होने के बाद ढांचे में उप-पिक्सेल त्रुटिपूर्णता उपयोगकर्ता के लिए एक समस्या नहीं हो सकती है क्योंकि वह हमेशा इन मोड में स्विच कर सकता है और सटीक इनपुट प्रदान कर सकता है।

+0

ड्राइंग ऐप्स को डिजाइन करने में अनुभव के साथ कोई और, सटीक इनपुट कैप्चर करने के लिए अपनी पसंदीदा विधि को जोड़ने के लिए स्वतंत्र महसूस करें ... – TheCodeArtist

+0

ज़ूमिंग के साथ समस्या यह है कि यह ठीक है जब उप-पिक्सेल त्रुटियों को दिखाया जाता है। अगर मेरे पास फ़ोटोशॉप या इलस्ट्रेटर कहने वाली एक छवि है, जिसे किसी दस्तावेज़ में 0,0 पर रखा गया है और 14.42 पिक्सल चौड़ा (या अधिक सामान्यतः, पॉइंट या सेमी में एक मान जो इस तरह की पिक्सेल चौड़ाई का मूल्यांकन करता है) पर सेट किया गया है, तब जब मैं उस दस्तावेज़ को ब्राउज़र में खोलता हूं और ज़ूम इन करता हूं, तो 14.42 और गोलाकार 14 पिक्सेल के बीच विसंगति बहुत स्पष्ट है। 15 पिक्सल पर रखे आसन्न आइटम से संबंधित, ऐसा लगता है कि बाईं ओर ले जाया गया है। कम से कम फ्लैश में यह वास्तव में 14.4 पिक्सल चौड़ा होगा (निकटतम टिप के लिए सटीक)। – JcFx

+0

ठीक है। मेरे समाधान में मैंने जो कुछ भी माना, वह यह था कि "ज़ूम" ऑपरेशन आवेदन में एक कस्टम कार्यान्वयन होगा और अंतर्निहित ढांचे से प्राप्त नहीं होगा। इसका उल्लेख करने के लिए उत्तर अपडेट किया गया। – TheCodeArtist

संबंधित मुद्दे