Sto convertendo un'immagine in base64 stringa e inviandola dal dispositivo Android al server. Ora, ho bisogno di cambiare quella stringa di nuovo su un'immagine e salvarla nel database.Come convertire la stringa base64 in immagine?
Qualsiasi aiuto?
Sto convertendo un'immagine in base64 stringa e inviandola dal dispositivo Android al server. Ora, ho bisogno di cambiare quella stringa di nuovo su un'immagine e salvarla nel database.Come convertire la stringa base64 in immagine?
Qualsiasi aiuto?
Prova questa:
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 ... a cosa serve "wb" ?! – omarsafwany
@omarsafwany Significa "w" rito e "b" ineo http://stackoverflow.com/questions/2665866/questo-è-il-wb-mean-in-this-code-using-python – HydrUra
@rmunn: Grazie mille per quelle righe! Lo so, i commenti non sono fatti per dire grazie, ma tu mi risparmi davvero il tempo! – HydrUra
Questo dovrebbe fare il trucco:
image = open("image.png", "wb")
image.write(base64string.decode('base64'))
image.close()
Basta utilizzare il metodo .decode('base64')
e andare per essere felice.
È necessario, inoltre, di rilevare il tipo MIME/estensione dell'immagine, come è possibile salvare correttamente, in un breve esempio, è possibile utilizzare il codice qui sotto per una visione 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()
E , dopo questo, usa il file $ come vuoi.
Semplice. Molto semplice. ;)
Nel caso in cui si desidera visualizzare l'immagine senza salvare:
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)
Se sai come convertire qualcosa da Base64, sicuramente si sa come convertire indietro? È lo stesso modulo. – Cairnarvon
Bene, è sufficiente invertire ciò che hai fatto quando hai convertito da immagine a base64. Dal momento che non hai fornito dettagli, nessuno sarà in grado di essere più specifico di quello. –