छवियाँ और तस्वीरें · ब्राउज़र छवि और ड्राइंग एडिटर
दोषरहित JPEG क्रॉपिंग बनाम ब्राउज़र क्रॉपिंग: पुनः एन्कोडिंग क्यों होती है
· पेजभूमि
छवि संपादन कैनवास ब्राउज़र-प्रसंस्करण
कमांड-लाइन टूल JPEG को बिना डिकोड किए क्रॉप कर सकते हैं, लेकिन केवल 8- या 16-पिक्सेल ग्रिड पर; ब्राउज़र एडिटर इसके बजाय डीकोड और पुनः एनकोड करते हैं। यह पोस्ट बताती है कि दोनों दृष्टिकोण क्यों मौजूद हैं और जब आपको दोबारा एनकोड करना हो तो गुणवत्ता हानि को कैसे सीमित किया जाए।
दो फसलें, दो फ़ाइल आकार - एक ही आयत को दो तरीकों से काटने पर अलग-अलग फ़ाइलें बनती हैं, और इसका कारण JPEG प्रारूप में ही है
दो JPEG फ़सलों के आयाम समान हो सकते हैं और फिर भी वे अलग-अलग बाइट अनुक्रम उत्पन्न कर सकते हैं। आयत समान हो सकती है जबकि एनकोडर विभिन्न तालिकाएँ, शीर्षलेख, परिमाणित मान या मेटाडेटा लिखता है। मुख्य अंतर अपनाया गया मार्ग है। एक दोषरहित JPEG उपयोगिता कभी-कभी संपीड़ित ब्लॉकों को पुनर्व्यवस्थित कर सकती है, जबकि यह एडिटर छवि को डीकोड करता है, पिक्सेल को इसकी रेखापुंज परतों में कॉपी करता है, और canvas.toBlob को एक ताज़ा फ़ाइल को एन्कोड करने के लिए कहता है।
एक अपूरणीय स्कैन के बजाय डुप्लिकेट के साथ उस अंतर का परीक्षण करें। एक आयत काटें, उसे निर्यात करें और आयामों, दृश्यमान किनारों और मापे गए बूँद आकार की तुलना करें। JPEG गुणवत्ता ब्राउज़र एनकोडर को भेज दी जाती है; PNG को कोई हानि-गुणवत्ता वाला तर्क नहीं मिलता है, और WebP अपने स्वयं के ब्राउज़र कोडेक का अनुसरण करता है। डाउनलोड एक नई एन्कोडिंग है, न कि एक कोने को हटाकर मूल संपीड़ित स्ट्रीम।
JPEG को कैसे व्यवस्थित किया जाता है - 8×8 ब्लॉक, न्यूनतम कोडित इकाइयाँ और काटने के लिए ग्रिड क्यों मायने रखता है
JPEG रूपांतरित छवि जानकारी को 8-by-8 ब्लॉक में संग्रहीत करता है, जिसमें नमूनाकरण और फ़ाइल के संगठन के आधार पर बड़ी कोडिंग इकाइयाँ होती हैं। वह ग्रिड विशेष दोषरहित संचालन के लिए मायने रखता है क्योंकि एक कट तभी साफ हो सकता है जब उसके किनारे फ़ाइल में पहले से मौजूद संरचनाओं के साथ संरेखित हों। यह उपयोगी प्रारूप संदर्भ है, यह दावा नहीं है कि ब्राउज़र एडिटर ब्लॉक निर्देशांक को उजागर करता है या न्यूनतम कोडित इकाइयों को समझता है।
एडिटर का क्रॉप टूल डिकोड किए गए पिक्सेल पर एक स्रोत आयत में सोचता है। इसलिए यह एक मनमाना चयन का प्रतिनिधित्व कर सकता है, जिसमें JPEG ब्लॉक सीमाओं के बीच की भूमि भी शामिल है, लेकिन स्रोत सबसैंपलिंग नियंत्रण, ब्लॉक संरेखण, या बाइट-स्तरीय संरक्षण को उजागर नहीं करता है। परिणाम पिक्सेल खींचे जाने के बाद एनकोडर पर लौटने की कीमत पर सुविधाजनक ज्यामितीय स्वतंत्रता है।
JPEG ब्लॉक संरचना पेजभूमि संदर्भ है; यह एडिटर संपीड़ित ब्लॉकों को पार्स या क्रॉप नहीं करता है
JPEGट्रान जैसा टूल अन्य व्यापार का प्रतिनिधित्व करता है: यह प्रत्येक ब्लॉक को सामान्य पिक्सल में परिवर्तित किए बिना JPEG संरचना पर काम कर सकता है। जब एक क्रॉप एज प्रासंगिक ब्लॉक ग्रिड में फिट बैठता है, तो टूल शेष संपीड़ित डेटा को बरकरार रखते हुए या पूर्ण हानिपूर्ण पुन: एन्कोड से बचने के दौरान पूर्ण क्षेत्रों को छोड़ सकता है। वह वर्कफ़्लो इस एडिटर के बाहर है और इसे सामान्य ब्राउज़र क्रॉप बटन द्वारा निहित नहीं किया जाना चाहिए।
दोषरहित का मतलब मनमानी नहीं है. ब्लॉक-संरेखित टूल फसल आयत को बाधित कर सकते हैं, और मेटाडेटा प्रबंधन को अभी भी अपने स्वयं के सत्यापन की आवश्यकता है। एडिटर एक अलग विकल्प बनाता है: यह उपयोगकर्ता को डिकोड की गई छवि पर एक मुफ्त आयत देता है, उस आयत को नई परत कैनवस में कॉपी करता है, और बाद में परिणाम को एनकोड करता है। जब बाइट संरक्षण या ब्लॉक-स्तरीय अभिलेखीय व्यवहार की आवश्यकता हो तो एक समर्पित JPEG उपयोगिता का उपयोग करें।
दोषरहित JPEG क्रॉपिंग इस कार्यान्वयन से बाहर है और इसके लिए एक अलग टूल की आवश्यकता होती है
कैनवास संपादन पिक्सेल के लिए बनाया गया है, न कि JPEG परिवर्तन गुणांकों के लिए। ब्राउज़र छवि को HTML छवि के रूप में लोड करता है, एडिटर चयनित स्रोत आयत को नई परत कैनवस में कॉपी करता है, और दृश्य रेखापुंज निर्यात के लिए बनाया जाता है। वह डिज़ाइन किसी भी फसल ज्यामिति को स्वीकार करता है और उसी वर्कफ़्लो को चित्र, पाठ और अन्य परतों को संभालने देता है। इसका यह भी अर्थ है कि मूल JPEG ब्लॉक अब निर्यात सामग्री नहीं हैं।
जब सत्र निर्यात किया जाता है, तो canvas.toBlob ब्राउज़र से एक नई PNG, JPEG, या WebP फ़ाइल मांगता है। JPEG डाउनलोड के लिए, यह डिकोड किए गए और संपादित रैस्टर का एक ब्राउज़र पुनः एनकोड है। स्रोत न्यूनतम-कोडित-इकाई संरेखण, गुणांक प्रतिलिपि, उप-नमूना चयन, या मेटाडेटा और प्रोफाइल के बारे में गारंटी का खुलासा नहीं करता है। यह व्यवहार जानबूझकर रैस्टर संपादन है, दोषरहित ब्लॉक क्रॉपिंग नहीं।
ब्राउज़र क्रॉपिंग पिक्सेल को डीकोड करता है, एक आयत की प्रतिलिपि बनाता है और समग्र को फिर से एनकोड करता है
एक वेब छवि के लिए एक एकल पुनः एनकोड स्वीकार्य हो सकता है, लेकिन इसकी लागत स्रोत, फसल, ब्राउज़र एनकोडर, चुनी गई गुणवत्ता और सामग्री पर निर्भर करती है। बढ़िया पाठ, हाफ़टोन स्कैन, तीक्ष्ण रेखा कला, और बार-बार कंट्रास्ट किनारे एक आकस्मिक तस्वीर की तुलना में जल्द ही परिवर्तन प्रकट कर सकते हैं। हानि के लिए एक निश्चित प्रतिशत या गारंटीकृत फ़ाइल-आकार में कमी निर्दिष्ट करने से बचें: भंडार ऐसा कोई वादा नहीं करता है।
जब संभव हो तो वर्कफ़्लो को एक जानबूझकर निर्यात पर रखें। JPEG डाउनलोड को दोबारा खोलना, एक और रास्टर संपादन करना, और इसे फिर से एन्कोड करना कलाकृतियों के लिए अवसरों को जोड़ता है, जबकि PNG को निर्यात करने से JPEG बाइट्स को संरक्षित करने के बजाय आकार और प्रारूप ट्रेड-ऑफ बदल सकता है। उपयोगी आवर्धन पर वास्तविक आउटपुट की तुलना करें, स्रोत को बनाए रखें और सार्वभौमिक संख्या पर भरोसा करने के बजाय गंतव्य के लिए प्रारूप और गुणवत्ता चुनें।
पुनः एन्कोडिंग परिणाम एनकोडर पर निर्भर होते हैं; किसी निश्चित आकार या गुणवत्ता प्रतिशत का वादा नहीं किया गया है
व्यावहारिक तुलना के रूप में स्कैन किए गए पेज का उपयोग करें। मूल को सुरक्षित रखें, उसके आयाम और फ़ाइल आकार को नोट करें, फिर एडिटर में वांछित आयत को चिह्नित करें। चुनी गई गुणवत्ता पर फसल को एक बार JPEG के रूप में निर्यात करें और छोटे प्रकार, सीधी सीमाओं और कागज की बनावट का निरीक्षण करें। आउटपुट आयाम उत्तर देते हैं कि क्या पेज को ट्रिम किया गया था; दृश्य निरीक्षण से उत्तर मिलता है कि नया रैस्टर उपयोगी बना हुआ है या नहीं।
एक दोषरहित ब्लॉक-अवेयर उपयोगिता एक अलग प्रयोग होगी: यह केवल संरेखित किनारों को स्वीकार कर सकती है और पेज को डिकोड करने से बच सकती है, जबकि ब्राउज़र क्रॉप आपके द्वारा बनाए गए आयत को स्वीकार करता है। दोनों की तुलना इस तरह न करें जैसे कि उनकी गारंटी एक जैसी हो। यहां, canvas.toBlob एक नई फ़ाइल तैयार करता है, और स्रोत बाइट पहचान, मेटाडेटा प्रतिधारण, प्रोफ़ाइल प्रतिधारण, या एक निश्चित गुणवत्ता लागत का वादा नहीं करता है।
कार्यान्वित जांच: बाइट संरक्षण की अपेक्षा किए बिना आयामों और दृश्य विवरण की तुलना करें
तुलना विशेष रूप से JPEG इनपुट और ब्राउज़र रैस्टर क्रॉप के बारे में है। PNG का संपीड़न व्यवहार भिन्न है और इस एडिटर में कोई हानि-गुणवत्ता तर्क प्राप्त नहीं होता है। WebP अपने स्वयं के ब्राउज़र कोडेक का अनुसरण करता है। रोटेशन, मेटाडेटा पुनर्लेखन, ICC हैंडलिंग, और विशेष दोषरहित JPEG परिवर्तन अलग-अलग प्रश्न हैं; एक प्रारूप में सफल निर्यात उन्हें दूसरे प्रारूप में उत्तर नहीं देता है।
अभिलेखीय दावों पर भी यही सावधानी लागू होती है। एडिटर न्यूनतम-कोडित-इकाई संरेखण, सबसैंपलिंग नियंत्रण, दोषरहित-रोटेशन ऑपरेशन, या एम्बेडेड मेटाडेटा के जीवित रहने की गारंटी को उजागर नहीं करता है। यदि स्रोत को संरचनात्मक रूप से बरकरार रहना चाहिए, तो इसे रखें और प्रारूप-जागरूक टूल का उपयोग करें। यदि लक्ष्य एक मनमाना आयत के साथ एक सुविधाजनक नई तस्वीर है, तो ब्राउज़र वर्कफ़्लो अधिक प्रत्यक्ष फिट है।
टेकअवे: जानें कि आप कौन सा व्यापार कर रहे हैं - ब्राउज़र छवि और ड्राइंग एडिटर आपके डिवाइस पर किसी भी आयत को कैसे क्रॉप करता है, और जब कोई दोषरहित टूल अभिलेखीय कार्य के लिए बेहतर अनुकूल होता है
व्यापार सीधा है: यह एडिटर एक रैस्टर क्रॉप करता है और उसके बाद एक नया ब्राउज़र एन्कोडिंग करता है। यह छवि को डीकोड करता है, चयनित आयत को उसके परत कैनवस में कॉपी करता है, दृश्यमान परिणाम को मिश्रित करता है, और अनुरोधित प्रारूप के लिए canvas.toBlob का उपयोग करता है। यह आपको डिवाइस पर एक मनमाना क्रॉप देता है, लेकिन यह मूल संपीड़ित बाइट स्ट्रीम को संरक्षित नहीं करता है या दोषरहित JPEG शब्दार्थ का दावा नहीं करता है।
इसका उपयोग तब करें जब वितरण योग्य साझाकरण, समीक्षा या आगे सामान्य संपादन के लिए एक व्यावहारिक छवि हो। जब अभिलेखीय निष्ठा, ब्लॉक संरक्षण, या मेटाडेटा गारंटी मायने रखती है तो स्रोत को रखें और एक प्रारूप-जागरूक दोषरहित उपयोगिता चुनें। अंतिम आयामों को मापें और दृश्यमान विवरण का निरीक्षण करें; वे चेक आपके द्वारा प्राप्त फ़ाइल का वर्णन करते हैं, बिना यह दिखावा किए कि प्रत्येक ब्राउज़र एनकोडर समान बाइट-स्तरीय व्यापार करता है।