मैं एक छवि को बेस 64 स्ट्रिंग में परिवर्तित कर रहा हूं और इसे एंड्रॉइड डिवाइस से सर्वर पर भेज रहा हूं। अब, मुझे उस स्ट्रिंग को एक छवि में वापस बदलने और डेटाबेस में सहेजने की आवश्यकता है।बेस 64 स्ट्रिंग को छवि में कैसे परिवर्तित करें?
कोई मदद?
मैं एक छवि को बेस 64 स्ट्रिंग में परिवर्तित कर रहा हूं और इसे एंड्रॉइड डिवाइस से सर्वर पर भेज रहा हूं। अब, मुझे उस स्ट्रिंग को एक छवि में वापस बदलने और डेटाबेस में सहेजने की आवश्यकता है।बेस 64 स्ट्रिंग को छवि में कैसे परिवर्तित करें?
कोई मदद?
इस प्रयास करें:
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
@rmunn ... के लिए 'wb' बिंदु क्या है ?! – omarsafwany
@omarsafwany इसका मतलब है "डब्ल्यू" अनुष्ठान और "बी" इनरी http://stackoverflow.com/questions/2665866/what-is-the-wb-mean-in-this-code-using-python – HydrUra
@rmunn: उन पंक्तियों के लिए आपको बहुत बहुत धन्यवाद! मुझे पता है, टिप्पणियां धन्यवाद देने के लिए नहीं बनाई गई हैं लेकिन आप वास्तव में अपना समय बचाते हैं! – HydrUra
इस चाल करना चाहिए:
image = open("image.png", "wb")
image.write(base64string.decode('base64'))
image.close()
बस विधि .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()
और इसके बाद, $ फ़ाइल का उपयोग करें जैसा आप चाहते हैं।
सरल। बहुत आसान। ;)
आप सहेजे बिना उस छवि को प्रदर्शित करना चाहते हैं मामले में:
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)
आप कैसे बेस 64 के लिए कुछ परिवर्तित करने के लिए पता है, निश्चित रूप से आप कैसे इसे वापस कन्वर्ट करने के लिए पता है? यह वही मॉड्यूल है। – Cairnarvon
ठीक है, जब आप छवि से बेस 64 में परिवर्तित करते हैं तो आपने जो किया वह ठीक है। चूंकि आपने कोई विवरण नहीं दिया है, इसलिए कोई भी उससे अधिक विशिष्ट नहीं होने जा रहा है। –