अपडेट किया गया उत्तर अब है कि मैं अपने आप को बेहतर समझते हैं :-)
मूल रूप से, आप बेस 64 openssl
इस तरह का उपयोग कर एक छवि सांकेतिक शब्दों में बदलना कर सकते हैं:
openssl enc -base64 -in image.png > image.b64
हालांकि, अगर आप ImageMagick
इसे पढ़ने में सक्षम होने के लिए, ImageMagick
बताए जाने के लिए आपको शुरुआत में एक छोटे से शीर्षलेख की आवश्यकता है। शीर्ष लेख शामिल होना चाहिए:
data:image/png;base64,
ऊपर openssl
आदेश का उपयोग कर उत्पन्न अपने बेस 64 एन्कोडेड डेटा का स्थान है। तो, क्या सुविधाओं अपने खोल है के आधार पर, आप इसे इस प्रकार bash
में कर सकता है एक यौगिक बयान के साथ:
{ echo "data:image/png;base64,"; openssl enc -base64 -in input.png; } > image.b64
या Windows में इस तरह:
echo data:image/png;base64, > image.b64
openssl enc -base64 -in image.png >> image.b64
एक बार जब आप उस में छवि है प्रारूप, आप तो ImageMagick
इस तरह से यह कार्रवाई करने के लिए आगे बढ़ सकते हैं:
convert inline:image.b64 result.png
मूल उत्तर
बहुत प्रयोग करने के बाद, मैं इसे कर सकता हूं !!!:-)
एरिक के (@emcconville) सेटअप के साथ प्रारंभ:
# For example
convert rose: rose.png
# Create base64 file
openssl enc -base64 -in rose.png -out rose.txt
और अब अंतिम पंक्ति के रूप में इस गंदगी जोड़ें:
{ echo "data:image/png;base64,"; cat rose.txt; } | convert inline:- out.jpg
मुझे लगता है कि data:image/png;base64,
बेस 64 में मौजूद नहीं है फ़ाइल openssl
द्वारा बनाई गई है, इसलिए मैं एक कंपाउंड स्टेटमेंट बनाता हूं जो उस प्लस को stdin
ImageMagick
पर भेजता है।
मुझे डर है कि मुझे मूल रूप से एक ही त्रुटि मिली: "कन्वर्ट: भ्रष्ट छवि 'डेटा: -' @ त्रुटि/constitute.c/ReadInlineImage/910।" मुझे लाइन एंडिंग (यूनिक्स) के अलावा मूल फ़ाइल में कोई भी व्हाइटस्पेस दिखाई नहीं दे रहा है। – skiphoppy
क्या आप एक ही छवि को एक नई छवि से पुनः बना सकते हैं? – emcconville
हां, मैं इसे किसी भी बेस 64 छवि के साथ प्राप्त करता हूं जिसका उपयोग मैं करता हूं। – skiphoppy