2016-08-01 60 views
0

Ich versuche, ein Bild hochzuladen, die in Graustufen umgewandelt wurde, wie folgt aus:Hochladen von Graustufenbild Python

blob_path = os.path.join(os.path.split(__file__)[0], 'static/img/blob-masks/1.png') 
blob = Image.open(blob_path).convert('L') 
buffer = StringIO() 
blob.save(buffer) 
upload_image(buffer.getvalue(),"foo.png") 

Aber es scheint nur ein schwarzes Quadrat zu laden.

Wenn ich an die Befehlszeile Python bekam und laufen:

col = Image.open("/static/img/blob-masks/5.png") 
col.convert('L') 
col.save("result_bw.png") 

result_bw.png ist perfekt. Was läuft falsch?

Antwort

0

Gibt es einen Grund, warum Sie das Graustufenbild nicht einfach hochladen können, nachdem Sie es konvertiert haben? Wie:

image = Image.open('static/img/blob-masks/1.png') 
image.convert('L') 
image.save("temp/bw.png") 
upload_image("temp/bw.png") 
# maybe delete the temporary file when you're done 
import os 
os.remove("temp/bw.png") 

Ich bin nicht sicher, wie Sie Ihre upload_image() Funktion funktioniert, aber wenn ich mit django laden, wenn ich irgendwelche Manipulationen schreibe ich eine temporäre Datei und dann wieder importieren. Wenn ich das Bild überhaupt nicht manipuliere, kann ich es einfach direkt hochladen.