J'ai une fonction dans laquelle j'essaye de redimensionner une photo deux fois à partir de request.FILES ['image']. J'utilise aussi l'image.thumbnail() avec l'analyseur. Cela fonctionne bien lorsque je crée une vignette, mais à mon avis, si je répète la même chose à nouveau, il échoue dans l'analyseur via IOError ne peut pas analyser l'image. Je suis très confus. J'ai créé des fichiers StringIO en mémoire au lieu d'utiliser l'objet UploadedFile de Django tel quel et cela fait toujours la même chose. Toute aide est très appréciée.Redimensionner l'image deux fois dans Django en utilisant PIL
Supposons que je voulais faire ce qui suit deux fois (avec deux tailles de thumbnailing différentes) tous sans récupérer l'URL deux fois:
import urllib2
from PIL import Image, ImageFile, ImageEnhance
# create Image instance
file = urllib2.urlopen(r'http://animals.nationalgeographic.com/staticfiles/NGS/Shared/StaticFiles/animals/images/primary/kemps-ridley-sea-turtle.jpg')
parser = ImageFile.Parser()
while True:
s = file.read(1024)
if not s:
break
parser.feed(s)
image = parser.close()
# make thumbnail
size = (75, 75)
image.thumbnail(size, Image.ANTIALIAS)
background = Image.new('RGBA', size, (255, 255, 255, 0))
background.paste(
image,
((size[0] - image.size[0])/2, (size[1] - image.size[1])/2))
background.save('copy.jpg')
Par exemple:
image = parser.close()
image2 = parser.close() # Obviously this doens't work
image2 = image # Obviously this doesn't either but you get what I need to do here
# Do 2 thumbnails with only one original source.
... autre code omises. ..
image.save('copy.jpg')
image2.save('copy.jpg')
Montrez-nous un peu de code! –