2013-04-25 8 views
13

मैं एक छवि को बेस 64 स्ट्रिंग में परिवर्तित कर रहा हूं और इसे एंड्रॉइड डिवाइस से सर्वर पर भेज रहा हूं। अब, मुझे उस स्ट्रिंग को एक छवि में वापस बदलने और डेटाबेस में सहेजने की आवश्यकता है।बेस 64 स्ट्रिंग को छवि में कैसे परिवर्तित करें?

कोई मदद?

+1

आप कैसे बेस 64 के लिए कुछ परिवर्तित करने के लिए पता है, निश्चित रूप से आप कैसे इसे वापस कन्वर्ट करने के लिए पता है? यह वही मॉड्यूल है। – Cairnarvon

+1

ठीक है, जब आप छवि से बेस 64 में परिवर्तित करते हैं तो आपने जो किया वह ठीक है। चूंकि आपने कोई विवरण नहीं दिया है, इसलिए कोई भी उससे अधिक विशिष्ट नहीं होने जा रहा है। –

उत्तर

35

इस प्रयास करें:

import base64 
imgdata = base64.b64decode(imgstring) 
filename = 'some_image.jpg' # I assume you have a way of picking unique filenames 
with open(filename, 'wb') as f: 
    f.write(imgdata) 
# f gets closed when you exit the with statement 
# Now save the value of filename to your database 
+0

@rmunn ... के लिए 'wb' बिंदु क्या है ?! – omarsafwany

+4

@omarsafwany इसका मतलब है "डब्ल्यू" अनुष्ठान और "बी" इनरी http://stackoverflow.com/questions/2665866/what-is-the-wb-mean-in-this-code-using-python – HydrUra

+0

@rmunn: उन पंक्तियों के लिए आपको बहुत बहुत धन्यवाद! मुझे पता है, टिप्पणियां धन्यवाद देने के लिए नहीं बनाई गई हैं लेकिन आप वास्तव में अपना समय बचाते हैं! – HydrUra

0

इस चाल करना चाहिए:

image = open("image.png", "wb") 
image.write(base64string.decode('base64')) 
image.close() 
1

बस विधि .decode('base64') का उपयोग करें और खुश होने के लिए जाना।

आप भी, छवि के माइम प्रकार/विस्तार का पता लगाने के रूप में आप इसे सही ढंग से बचा सकता है, एक संक्षिप्त उदाहरण में, आप एक Django दृश्य के लिए नीचे दिए गए कोड का उपयोग कर सकते की जरूरत है:

def receiveImage(req): 
    image_ext = req.REQUEST["image_filename"] # A field from the Android device 
    image_data = req.REQUEST["image_data"].decode("base64") # The data image 
    filehandler = fopen($image_ext, "wb+") 
    filehandler.write(image_data) 
    filehandler.close() 

और इसके बाद, $ फ़ाइल का उपयोग करें जैसा आप चाहते हैं।

सरल। बहुत आसान। ;)

0

आप सहेजे बिना उस छवि को प्रदर्शित करना चाहते हैं मामले में:

from PIL import Image 
import cv2 
    # Take in base64 string and return cv image 
    def stringToRGB(base64_string): 
     imgdata = base64.b64decode(str(base64_string)) 
     image = Image.open(io.BytesIO(imgdata)) 
     return cv2.cvtColor(np.array(image), cv2.COLOR_BGR2RGB) 
संबंधित मुद्दे