अगर मैं एक इमेज (jpg या png) को base64 में कन्वर्ट करता हूं, तो क्या यह बड़ा होगा, या इसका आकार एक जैसा होगा? यह कितना बड़ा होगा?
क्या मेरी वेबसाइट पर base64 एन्कोडेड चित्रों का उपयोग करने की सिफारिश की गई है?
अगर मैं एक इमेज (jpg या png) को base64 में कन्वर्ट करता हूं, तो क्या यह बड़ा होगा, या इसका आकार एक जैसा होगा? यह कितना बड़ा होगा?
क्या मेरी वेबसाइट पर base64 एन्कोडेड चित्रों का उपयोग करने की सिफारिश की गई है?
जवाबों:
यह लगभग 37% बड़ा होगा:
बहुत मोटे तौर पर, बेस 64-एन्कोडेड बाइनरी डेटा का अंतिम आकार मूल डेटा आकार के 1.37 गुना के बराबर है
यहाँ का वास्तव में उपयोगी अवलोकन है कि कब base64 सांकेतिक शब्दों में बदलना और जब डेविड Calhoun द्वारा नहीं ।
मूल उत्तर = gzipped base64 एन्कोडेड फ़ाइलें मानक बाइनरी (jpg / png) फ़ाइल आकार में लगभग तुलनीय होंगी। Gzip'd बाइनरी फ़ाइलों का एक छोटा फ़ाइल आकार होगा।
Takeaway = अपने UI आइकन आदि को एन्कोडिंग और जिप करने के लिए कुछ लाभ है, लेकिन बड़ी छवियों के लिए ऐसा करने के लिए नासमझ।
यह बेस 64 में बड़ा होगा।
बेस 6 डेटा को एन्कोड करने के लिए प्रति बाइट में 6 बिट्स का उपयोग करता है, जबकि बाइनरी 8 बिट प्रति बाइट का उपयोग करता है। इसके अलावा, बेस 64 के साथ थोड़ा पैडिंग ओवरहेड है। बेस 64 के साथ सभी बिट्स का उपयोग नहीं किया जाता है क्योंकि यह पहली बार बाइनरी डेटा को सिस्टम पर एनकोड करने के लिए विकसित किया गया था जो केवल गैर-बाइनरी डेटा को सही ढंग से प्रोसेस कर सकता है।
इसका मतलब है कि एन्कोडेड छवि लगभग 25% बड़ी होगी, और पैडिंग के लिए निरंतर ओवरहेड होगी।
एक छवि को बेस 64 में एन्कोड करने से यह लगभग 30% बड़ा हो जाएगा।
डेटा यूआरआई योजना के बारे में विकिपीडिया लेख में विवरण देखें , जहां यह बताता है:
बेस 64-एनकोडेड डेटा यूआरआई उनके बाइनरी समकक्ष की तुलना में आकार में 1/3 बड़ा है। (हालांकि, यह ओवरहेड 2-3% तक कम हो जाता है यदि HTTP सर्वर gzip का उपयोग करके प्रतिक्रिया को संकुचित करता है)
जवाब है: यह निर्भर करता है।
हालाँकि, बेस 64-चित्र बड़े हैं, फिर भी कुछ स्थितियाँ ऐसी हैं जहाँ बेस 64 बेहतर विकल्प है।
बेस 64-छवियों का आकार
बेस 64 में 64 अलग-अलग वर्ण हैं और यह 2 ^ 6 है। तो बेस 64 प्रति 8bit चरित्र में 6bit स्टोर करता है। तो यह अनुपात 6/8 से अनकॉन्डेट डेटा से बेस 64 डेटा तक है। यह कोई सटीक गणना नहीं है, लेकिन एक मोटा अनुमान है।
उदाहरण:
एक 48kb छवि को 6464 के आसपास की आवश्यकता है, जैसा कि base64 परिवर्तित छवि है।
गणना: (48/6) * 8 = 64
लिनक्स सिस्टम पर साधारण सीएलआई कैलकुलेटर:
$ cat /dev/urandom|head -c 48000|base64|wc -c
64843
या एक छवि का उपयोग कर:
$ cat my.png|base64|wc -c
Base64- चित्र और वेबसाइट
इस प्रश्न का उत्तर देना अधिक कठिन है। आम तौर पर बोल, आधार संख्या का उपयोग करते हुए छवि को जितना कम समझ में आता है। लेकिन निम्नलिखित बातों पर विचार करें:
यदि आप बेस 64 एन्कोडेड चित्रों का उपयोग करना चाहते हैं तो निश्चित रूप से यह आपको अधिक स्थान और बैंडविड्थ का खर्च देगा। हालाँकि, यदि आपकी साइट में बहुत सारी छोटी छवियां हैं, तो आप अपनी छवियों को बेस 64 पर एन्कोडिंग करके और उन्हें html में रखकर पृष्ठ लोडिंग समय को कम कर सकते हैं। इस तरह, क्लाइंट ब्राउज़र को छवियों से बहुत अधिक कनेक्शन बनाने की आवश्यकता नहीं होगी, लेकिन उन्हें html में होगा।