Décodage en base64 de la POSTE, à utiliser dans PIL

Je suis en train de faire une API simple dans le Flacon qui accepte une image encodée en base64, puis décode pour un traitement ultérieur à l'aide d'Oreiller.

J'ai regardé quelques exemples (Un, Deux, Trois), et je pense que je obtenir de l'essence de la procédure, mais je reçois un message d'erreur lorsque Oreiller peut pas lire le string, je lui ai donné.

Voici ce que j'ai obtenu jusqu'à présent:

import cStringIO
from PIL import Image
import base64

data = request.form
image_string = cStringIO.StringIO(base64.b64decode(data['img']))
image = Image.open(image_string)

qui donne l'erreur:

IOError: cannot identify image file <cStringIO.StringIO object at 0x10f84c7a0>
  • Pouvez-vous coller un exemple de ce que vous obtenez en data['img']? Journal, ou de l'imprimer.
  • Voici un exemple: jsfiddle.net/gn0x0wvc. Je l'ai mis dans un img étiquette pour vous assurer que les données de l'image n'était pas corrompu.
  • Ce qui ne l'après b64decode()? Est-il un autre encodage en cours, par exemple encodage? Est-il vraiment une image pris en charge par PIL?
  • Juste que le violon ne nous dit rien sur la façon dont vous êtes l'affichage d'une chaîne à votre ballon de serveur. Ce n' print repr(data['img']) produire sur votre console par exemple?
  • Voici une capture d'écran de la sortie de b64 decode: imgur.com/7ZJNuPf j'ai essayé de suivre l'exemple here. @Martijn Pieters voici ce que print repr(data['img']) ressemble: imgur.com/xmrvNmI
InformationsquelleAutor Lazaro Gamio | 2014-09-27