# creation d'une image 300x300 (fond bleu)
img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format
PNG valide)
#img.show()
# sortie de l'image au format PNG
f = cStringIO.StringIO()
img.save(f,'PNG')
print "Content-Type: image/png\n"
print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut
être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je
constate que les octets 0x0A sont considérés comme des sauts de ligne
car ils sont remplacés par 0xOD 0x0A...
Bien sûr, ça marche sous linux (mais tout de même un octet
supplémentaire 0xOA en fin de fichier).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas
Le 11/04/2013 14:06, fabrice a écrit :
Bonjour,
un problème avec le code suivant :
#! c:/Python27/python.exe # -*- coding:utf8 -*-
from PIL import Image,ImageDraw import cStringIO
# creation d'une image 300x300 (fond bleu) img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format PNG valide) #img.show()
# sortie de l'image au format PNG f = cStringIO.StringIO() img.save(f,'PNG')
print "Content-Type: image/pngn" print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je constate que les octets 0x0A sont considérés comme des sauts de ligne car ils sont remplacés par 0xOD 0x0A...
Bien sûr, ça marche sous linux (mais tout de même un octet supplémentaire 0xOA en fin de fichier).
Pourriez-vous m'aider à résoudre ce problème ?
Cordialement, FS
Essaye avec StringIO à la place de cStringIO.
Nicolas
Le 11/04/2013 14:06, fabrice a écrit :
Bonjour,
un problème avec le code suivant :
#! c:/Python27/python.exe
# -*- coding:utf8 -*-
from PIL import Image,ImageDraw
import cStringIO
# creation d'une image 300x300 (fond bleu)
img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format
PNG valide)
#img.show()
# sortie de l'image au format PNG
f = cStringIO.StringIO()
img.save(f,'PNG')
print "Content-Type: image/pngn"
print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut
être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je
constate que les octets 0x0A sont considérés comme des sauts de ligne
car ils sont remplacés par 0xOD 0x0A...
Bien sûr, ça marche sous linux (mais tout de même un octet
supplémentaire 0xOA en fin de fichier).
# creation d'une image 300x300 (fond bleu) img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format PNG valide) #img.show()
# sortie de l'image au format PNG f = cStringIO.StringIO() img.save(f,'PNG')
print "Content-Type: image/pngn" print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je constate que les octets 0x0A sont considérés comme des sauts de ligne car ils sont remplacés par 0xOD 0x0A...
Bien sûr, ça marche sous linux (mais tout de même un octet supplémentaire 0xOA en fin de fichier).
Pourriez-vous m'aider à résoudre ce problème ?
Cordialement, FS
Essaye avec StringIO à la place de cStringIO.
Nicolas
fabrice
Le 12/04/2013 09:01, Nicolas a écrit :
Le 11/04/2013 14:06, fabrice a écrit :
Bonjour,
un problème avec le code suivant :
#! c:/Python27/python.exe # -*- coding:utf8 -*-
from PIL import Image,ImageDraw import cStringIO
# creation d'une image 300x300 (fond bleu) img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format PNG valide) #img.show()
# sortie de l'image au format PNG f = cStringIO.StringIO() img.save(f,'PNG')
print "Content-Type: image/pngn" print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je constate que les octets 0x0A sont considérés comme des sauts de ligne car ils sont remplacés par 0xOD 0x0A...
Bien sûr, ça marche sous linux (mais tout de même un octet supplémentaire 0xOA en fin de fichier).
Pourriez-vous m'aider à résoudre ce problème ?
Cordialement, FS
Essaye avec StringIO à la place de cStringIO.
Nicolas
Déjà testé : ça ne marche pas.
Le 12/04/2013 09:01, Nicolas a écrit :
Le 11/04/2013 14:06, fabrice a écrit :
Bonjour,
un problème avec le code suivant :
#! c:/Python27/python.exe
# -*- coding:utf8 -*-
from PIL import Image,ImageDraw
import cStringIO
# creation d'une image 300x300 (fond bleu)
img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format
PNG valide)
#img.show()
# sortie de l'image au format PNG
f = cStringIO.StringIO()
img.save(f,'PNG')
print "Content-Type: image/pngn"
print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut
être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je
constate que les octets 0x0A sont considérés comme des sauts de ligne
car ils sont remplacés par 0xOD 0x0A...
Bien sûr, ça marche sous linux (mais tout de même un octet
supplémentaire 0xOA en fin de fichier).
# creation d'une image 300x300 (fond bleu) img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format PNG valide) #img.show()
# sortie de l'image au format PNG f = cStringIO.StringIO() img.save(f,'PNG')
print "Content-Type: image/pngn" print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je constate que les octets 0x0A sont considérés comme des sauts de ligne car ils sont remplacés par 0xOD 0x0A...
Bien sûr, ça marche sous linux (mais tout de même un octet supplémentaire 0xOA en fin de fichier).
Pourriez-vous m'aider à résoudre ce problème ?
Cordialement, FS
Essaye avec StringIO à la place de cStringIO.
Nicolas
Déjà testé : ça ne marche pas.
fabrice
Le 11/04/2013 14:06, fabrice a écrit :
Bonjour,
un problème avec le code suivant :
#! c:/Python27/python.exe # -*- coding:utf8 -*-
from PIL import Image,ImageDraw import cStringIO
# creation d'une image 300x300 (fond bleu) img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format PNG valide) #img.show()
# sortie de l'image au format PNG f = cStringIO.StringIO() img.save(f,'PNG')
print "Content-Type: image/pngn" print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je constate que les octets 0x0A sont considérés comme des sauts de ligne car ils sont remplacés par 0xOD 0x0A...
Bien sûr, ça marche sous linux (mais tout de même un octet supplémentaire 0xOA en fin de fichier).
Pourriez-vous m'aider à résoudre ce problème ?
Cordialement, FS
j'ai essayé avec ça, mais exactement le même problème :
# creation d'une image 300x300 (fond bleu)
img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format
PNG valide)
#img.show()
# sortie de l'image au format PNG
f = cStringIO.StringIO()
img.save(f,'PNG')
print "Content-Type: image/pngn"
print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut
être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je
constate que les octets 0x0A sont considérés comme des sauts de ligne
car ils sont remplacés par 0xOD 0x0A...
Bien sûr, ça marche sous linux (mais tout de même un octet
supplémentaire 0xOA en fin de fichier).
Pourriez-vous m'aider à résoudre ce problème ?
Cordialement,
FS
j'ai essayé avec ça, mais exactement le même problème :
# creation d'une image 300x300 (fond bleu) img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format PNG valide) #img.show()
# sortie de l'image au format PNG f = cStringIO.StringIO() img.save(f,'PNG')
print "Content-Type: image/pngn" print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je constate que les octets 0x0A sont considérés comme des sauts de ligne car ils sont remplacés par 0xOD 0x0A...
Bien sûr, ça marche sous linux (mais tout de même un octet supplémentaire 0xOA en fin de fichier).
Pourriez-vous m'aider à résoudre ce problème ?
Cordialement, FS
j'ai essayé avec ça, mais exactement le même problème :
# creation d'une image 300x300 (fond bleu) img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format PNG valide) #img.show()
# sortie de l'image au format PNG f = cStringIO.StringIO() img.save(f,'PNG')
print "Content-Type: image/pngn" print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je constate que les octets 0x0A sont considérés comme des sauts de ligne car ils sont remplacés par 0xOD 0x0A...
Essaye avec sys.stdout.write au lieu de print
Bien sûr, ça marche sous linux (mais tout de même un octet supplémentaire 0xOA en fin de fichier).
Pourriez-vous m'aider à résoudre ce problème ?
Cordialement, FS
--
On 11-04-2013, fabrice wrote:
Bonjour,
un problème avec le code suivant :
#! c:/Python27/python.exe
# -*- coding:utf8 -*-
from PIL import Image,ImageDraw
import cStringIO
# creation d'une image 300x300 (fond bleu)
img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format
PNG valide)
#img.show()
# sortie de l'image au format PNG
f = cStringIO.StringIO()
img.save(f,'PNG')
print "Content-Type: image/pngn"
print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut
être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je
constate que les octets 0x0A sont considérés comme des sauts de ligne
car ils sont remplacés par 0xOD 0x0A...
Essaye avec sys.stdout.write au lieu de print
Bien sûr, ça marche sous linux (mais tout de même un octet
supplémentaire 0xOA en fin de fichier).
# creation d'une image 300x300 (fond bleu) img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format PNG valide) #img.show()
# sortie de l'image au format PNG f = cStringIO.StringIO() img.save(f,'PNG')
print "Content-Type: image/pngn" print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je constate que les octets 0x0A sont considérés comme des sauts de ligne car ils sont remplacés par 0xOD 0x0A...
Essaye avec sys.stdout.write au lieu de print
Bien sûr, ça marche sous linux (mais tout de même un octet supplémentaire 0xOA en fin de fichier).
Pourriez-vous m'aider à résoudre ce problème ?
Cordialement, FS
--
fabrice
Le 12/04/2013 14:08, kw a écrit :
On 11-04-2013, fabrice wrote:
Bonjour,
un problème avec le code suivant :
#! c:/Python27/python.exe # -*- coding:utf8 -*-
from PIL import Image,ImageDraw import cStringIO
# creation d'une image 300x300 (fond bleu) img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format PNG valide) #img.show()
# sortie de l'image au format PNG f = cStringIO.StringIO() img.save(f,'PNG')
print "Content-Type: image/pngn" print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je constate que les octets 0x0A sont considérés comme des sauts de ligne car ils sont remplacés par 0xOD 0x0A...
Essaye avec sys.stdout.write au lieu de print
même problème !
Le 12/04/2013 14:08, kw a écrit :
On 11-04-2013, fabrice wrote:
Bonjour,
un problème avec le code suivant :
#! c:/Python27/python.exe
# -*- coding:utf8 -*-
from PIL import Image,ImageDraw
import cStringIO
# creation d'une image 300x300 (fond bleu)
img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format
PNG valide)
#img.show()
# sortie de l'image au format PNG
f = cStringIO.StringIO()
img.save(f,'PNG')
print "Content-Type: image/pngn"
print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut
être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je
constate que les octets 0x0A sont considérés comme des sauts de ligne
car ils sont remplacés par 0xOD 0x0A...
# creation d'une image 300x300 (fond bleu) img = Image.new('RGB',(300,300),"#0000FF")
#img.save('photo.png','PNG') # ca marche (fichier 911 octets, format PNG valide) #img.show()
# sortie de l'image au format PNG f = cStringIO.StringIO() img.save(f,'PNG')
print "Content-Type: image/pngn" print f.getvalue() # probleme
dans mon navigateur : "L'image localhost/cgi-bin/monimage.py ne peut être affichée car elle contient des erreurs"
la taille du fichier généré fait 915 octets au lieu de 911, et je constate que les octets 0x0A sont considérés comme des sauts de ligne car ils sont remplacés par 0xOD 0x0A...
from PIL import Image,ImageDraw import cStringIO import sys
# Write binary output to stdout (windows OS only) if sys.platform == "win32": import os, msvcrt # sinon n (0x0A) est transformé en rn (0xOD 0x0A) msvcrt.setmode(1,os.O_BINARY)
print "Content-type: image/pngn"
# création d'une image 300x300 (fond blanc) img = Image.new('RGB',(300,300),"#FFFFFF")
draw = ImageDraw.Draw(img)
# dessine un arc partiel et le remplit draw.pieslice((50,50,250,250),0,60,fill="blue") draw.pieslice((50,50,250,250),60,150,fill="gray") draw.pieslice((50,50,250,250),150,360,fill="red")
f = cStringIO.StringIO() img.save(f,"PNG") sys.stdout.write(f.getvalue())
from PIL import Image,ImageDraw
import cStringIO
import sys
# Write binary output to stdout (windows OS only)
if sys.platform == "win32":
import os, msvcrt
# sinon n (0x0A) est transformé en rn (0xOD 0x0A)
msvcrt.setmode(1,os.O_BINARY)
print "Content-type: image/pngn"
# création d'une image 300x300 (fond blanc)
img = Image.new('RGB',(300,300),"#FFFFFF")
draw = ImageDraw.Draw(img)
# dessine un arc partiel et le remplit
draw.pieslice((50,50,250,250),0,60,fill="blue")
draw.pieslice((50,50,250,250),60,150,fill="gray")
draw.pieslice((50,50,250,250),150,360,fill="red")
f = cStringIO.StringIO()
img.save(f,"PNG")
sys.stdout.write(f.getvalue())
from PIL import Image,ImageDraw import cStringIO import sys
# Write binary output to stdout (windows OS only) if sys.platform == "win32": import os, msvcrt # sinon n (0x0A) est transformé en rn (0xOD 0x0A) msvcrt.setmode(1,os.O_BINARY)
print "Content-type: image/pngn"
# création d'une image 300x300 (fond blanc) img = Image.new('RGB',(300,300),"#FFFFFF")
draw = ImageDraw.Draw(img)
# dessine un arc partiel et le remplit draw.pieslice((50,50,250,250),0,60,fill="blue") draw.pieslice((50,50,250,250),60,150,fill="gray") draw.pieslice((50,50,250,250),150,360,fill="red")
f = cStringIO.StringIO() img.save(f,"PNG") sys.stdout.write(f.getvalue())
from PIL import Image,ImageDraw import cStringIO import sys
# Write binary output to stdout (windows OS only) if sys.platform == "win32": import os, msvcrt # sinon n (0x0A) est transformé en rn (0xOD 0x0A) msvcrt.setmode(1,os.O_BINARY)
print "Content-type: image/pngn"
# création d'une image 300x300 (fond blanc) img = Image.new('RGB',(300,300),"#FFFFFF")
draw = ImageDraw.Draw(img)
# dessine un arc partiel et le remplit draw.pieslice((50,50,250,250),0,60,fill="blue") draw.pieslice((50,50,250,250),60,150,fill="gray") draw.pieslice((50,50,250,250),150,360,fill="red")
f = cStringIO.StringIO() img.save(f,"PNG") sys.stdout.write(f.getvalue())
Cordialement, FS
Code fonctionnel chez moi :
def make_image(filename, size): image = Image.open (filename) image.thumbnail(size, 2) data = image.tostring("jpeg", "RGB") return data
from PIL import Image,ImageDraw
import cStringIO
import sys
# Write binary output to stdout (windows OS only)
if sys.platform == "win32":
import os, msvcrt
# sinon n (0x0A) est transformé en rn (0xOD 0x0A)
msvcrt.setmode(1,os.O_BINARY)
print "Content-type: image/pngn"
# création d'une image 300x300 (fond blanc)
img = Image.new('RGB',(300,300),"#FFFFFF")
draw = ImageDraw.Draw(img)
# dessine un arc partiel et le remplit
draw.pieslice((50,50,250,250),0,60,fill="blue")
draw.pieslice((50,50,250,250),60,150,fill="gray")
draw.pieslice((50,50,250,250),150,360,fill="red")
f = cStringIO.StringIO()
img.save(f,"PNG")
sys.stdout.write(f.getvalue())
Cordialement,
FS
Code fonctionnel chez moi :
def make_image(filename, size):
image = Image.open (filename)
image.thumbnail(size, 2)
data = image.tostring("jpeg", "RGB")
return data
from PIL import Image,ImageDraw import cStringIO import sys
# Write binary output to stdout (windows OS only) if sys.platform == "win32": import os, msvcrt # sinon n (0x0A) est transformé en rn (0xOD 0x0A) msvcrt.setmode(1,os.O_BINARY)
print "Content-type: image/pngn"
# création d'une image 300x300 (fond blanc) img = Image.new('RGB',(300,300),"#FFFFFF")
draw = ImageDraw.Draw(img)
# dessine un arc partiel et le remplit draw.pieslice((50,50,250,250),0,60,fill="blue") draw.pieslice((50,50,250,250),60,150,fill="gray") draw.pieslice((50,50,250,250),150,360,fill="red")
f = cStringIO.StringIO() img.save(f,"PNG") sys.stdout.write(f.getvalue())
Cordialement, FS
Code fonctionnel chez moi :
def make_image(filename, size): image = Image.open (filename) image.thumbnail(size, 2) data = image.tostring("jpeg", "RGB") return data