2008-08-30 21 views
52

मैं फ़ायरफ़ॉक्स/आईई के लिए एक खुली खोज ऐड-ऑन बना रहा हूं और छवि को बेस 64 एनकोडेड होना चाहिए, तो मैं अपने पास फेविकॉन 64 एनकोड कैसे कर सकता हूं?बेस 64 एन्कोडिंग छवि

मैं गूगल मुझे this समाधान (base64_encode) करने के लिए नेतृत्व पीएचपी

उत्तर

74

जहां तक ​​मुझे याद है कि छवि डेटा के लिए एक XML तत्व है। आप फ़ाइल को एन्कोड करने के लिए इस website का उपयोग कर सकते हैं (अपलोड फ़ील्ड का उपयोग करें)। फिर डेटा को एक्सएमएल तत्व में कॉपी और पेस्ट करें।

<?php 
     $im = file_get_contents('filename.gif'); 
     $imdata = base64_encode($im);  
?> 

उपयोग Mozilla's guide OpenSearch प्लगइन्स बनाने पर मदद के लिए:

तुम भी पीएचपी तो जैसे यह करने के लिए इस्तेमाल कर सकते हैं। उदाहरण के लिए, आइकन तत्व इस तरह प्रयोग किया जाता है:

<img width="16" height="16">data:image/x-icon;base64,imageData</> 

imageData कहाँ अपने बेस 64 डाटा नहीं है।

+1

base64_encode केवल छवि के "संसाधन संभाल" को एन्कोड करेगा, मुझे विश्वास है, अगर कुछ भी हो। आपको फ़ाइल की वास्तविक सामग्री में पढ़ने की आवश्यकता होगी। बस उस बेस 64 एन्कोडर वेबसाइट का उपयोग करना चाहिए, हालांकि। –

+1

यह मेरे लिए बिल्कुल काम नहीं करता है। '$ im' एक 'संसाधन' है और मुझे एक त्रुटि मिल रही है' base64_encode() पैरामीटर 1 स्ट्रिंग होने की अपेक्षा करता है, संसाधन दिया गया –

+2

उपरोक्त टिप्पणियां पिछले संपादन का जिक्र कर रही थीं, हैकर ने मेरी गलती तय की। @stevether यह अब काम करना चाहिए। – Ross

0

के साथ ही परिचित हूँ। उम्मीद है की यह मदद करेगा!

+1

हाँ मैं जानता हूँ कि यह कैसे एन्कोड करने के लिए, लेकिन यह कैसे के लिए वहाँ में सिर्फ छवि डेटा प्राप्त करने एन्कोड किया जाना है। इस मामले में – UnkwnTech

8

rfc2397 का मेरा सार है:

बार जब आप अपने बेस 64 इनकोडिंग छवि डेटा < छवि> </छवि> के साथ "data:{mimetype};base64," इस लगाकर में किया के समान है उपसर्ग के टैग के अंदर डाल दिया गया है सीएसएस में url() की परिभाषा और src के उद्धृत मूल्य में img टैग [X] HTML में विशेषता है। आप यूआरएल फ़ील्ड में data:image/... लाइन डालकर और एंटर दबाकर फ़ायरफ़ॉक्स में डेटा यूआरएल का परीक्षण कर सकते हैं, यह आपकी छवि दिखाना चाहिए।

वास्तव में मुझे लगता है कि हम अपने सभी विकल्पों को, न कि केवल पीएचपी, पर जाने के लिए की जरूरत है एन्कोडिंग के लिए वहाँ है, क्योंकि बेस 64 एन्कोड कुछ करने के लिए कई मायनों।

  1. base64 कमांड लाइन उपकरण का उपयोग करें। यह किसी भी Cygwin में GNU coreutils (v6 +) का हिस्सा है और काफी डिफ़ॉल्ट है, Linux, GnuWin32 स्थापित करते हैं, लेकिन नहीं BSDs मैंने कोशिश की। मुद्दा: $ base64 imagefile.ico > imagefile.base64.txt
  2. Notepad++ जो Plugins-> माइम उपकरण> बेस 64 एन्कोड जा रही सुविधा
  3. खुद फ़ाइल ईमेल और कच्चे ईमेल सामग्री देख, कॉपी और है की तरह एक उपकरण है जो विकल्प की सुविधा बेस 64 कन्वर्ट करने के लिए, का उपयोग करें पेस्ट करें।
  4. webform का उपयोग करें।

माइम-प्रकार पर एक नोट: मैं तुम्हें image/pngimage/jpeg या image/gif से एक का उपयोग के रूप में मैं लोकप्रिय image/x-iconcan't find पसंद करेंगे। क्या यह image/vnd.microsoft.icon होना चाहिए? इसके अलावा अन्य प्रारूप बहुत कम हैं।

265 बाइट्स तुलना बनाम 1150 बाइट्स:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAVFBMVEWcZjTcViTMuqT8/vzcYjTkhhTkljT87tz03sRkZmS8mnT03tT89vTsvoTk1sz86uTkekzkjmzkwpT01rTsmnzsplTUwqz89uy0jmzsrmTknkT0zqT3X4fRAAAAbklEQVR4XnXOVw6FIBBAUafQsZfX9r/PB8JoTPT+QE4o01AtMoS8HkALcH8BGmGIAvaXLw0wCqxKz0Q9w1LBfFSiJBzljVerlbYhlBO4dZHM/F3llybncbIC6N+70Q7OlUm7DdO+gKs9gyRwdgd/LOcGXHzLN5gAAAAASUVORK5CYII= 

data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAD/////ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv///////////2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb///////////9mZmb/ZmZm//////////////////////////////////////////////////////9mZmb/ZmZm////////////ZmZm/2ZmZv//////ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv//////ZmZm/2ZmZv///////////2ZmZv9mZmb//////2ZmZv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2ZmZv9mZmb//////2ZmZv9mZmb///////////9mZmb/ZmZm////////////////////////////8fX4/8nW5P+twtb/oLjP//////9mZmb/ZmZm////////////////////////////oLjP/3eZu/9pj7T/M2aZ/zNmmf8zZpn/M2aZ/zNmmf///////////////////////////////////////////zNmmf8zZpn/M2aZ/zNmmf8zZpn/d5m7/6C4z/+WwuH/wN/3//////////////////////////////////////+guM//rcLW/8nW5P/x9fj//////9/v+/+w1/X/QZ7m/1Cm6P//////////////////////////////////////////////////////7/f9/4C+7v8xluT/EYbg/zGW5P/A3/f/0933/9Pd9//////////////////////////////////f7/v/YK7q/xGG4P8RhuD/MZbk/7DX9f//////4uj6/zJh2/8yYdv/8PT8////////////////////////////UKbo/xGG4P8xluT/sNf1////////////4uj6/zJh2/8jVtj/e5ro/////////////////////////////////8Df9/+gz/P/////////////////8PT8/0944P8jVtj/bI7l/////////////////////////////////////////////////////////////////2yO5f8jVtj/T3jg//D0/P///////////////////////////////////////////////////////////3ua6P8jVtj/MmHb/+Lo+v////////////////////////////////////////////////////////////D0/P8yYdv/I1bY/9Pd9///////////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== 
10
$encoded_data = base64_encode(file_get_contents('path-to-your-image.jpg'));  
+4

@ डेविडकोर्डा में हूं - ब्रेविटी स्वीकार्य है, लेकिन पूर्ण स्पष्टीकरण बेहतर हैं। http://stackoverflow.com/questions/how-to-answer – Michal

6

चेक निम्न उदाहरण

<?php 
    // First get your image 
    $image = 'path-to-your-picture/image.jpg'; 
    $picture = base64_encode(file_get_contents($image)); 
    echo '<img width="100" height="100" src="data:image/jpg;base64,'. $picture .'" />' 
    ?> 
संबंधित मुद्दे