Python/PIL Redimensionner toutes les images dans un dossier
J'ai le code suivant qui me semblait redimensionner les images dans le chemin d'accès spécifié
Mais quand je le lance, rien ne fonctionne et pourtant, python ne pas jeter d'erreur donc je ne sais pas quoi faire. Veuillez informer. Merci.
from PIL import Image
import os, sys
path = ('C:\Users\Maxxie\color\complete')
def resize():
for item in os.listdir(path):
if os.path.isfile(item):
im = Image.open(item)
f, e = os.path.splitext(item)
imResize = im.resize((200,200), Image.ANTIALIAS)
imResize.save(f + ' resized.jpg', 'JPEG', quality=90)
resize()
Vous devez vous connecter pour publier un commentaire.
Votre erreur est appartiennent à chemin d'accès complet des fichiers. Au lieu de élément doit être chemin d'accès+le point
path = ('C:\Users\Maxxie\color\complete\\')
Alors maintenant, tout fonctionne comme prévu...Merci beaucoupos.path.join()
au lieu d'utiliser de la plaine de concaténation. À ce stade, vous n'avez plus besoin d'avoirpath
fin dans un séparateur de chemin soit.Dans le cas où vous voulez garder le même ratio d'aspect de l'image vous pouvez utiliser ce script.
L'expansion de la grande solution de @Sanjar Pierre
y compris pour les sous-dossiers et également éviter de DS avertissements, vous pouvez utiliser le glob de la bibliothèque:
Jean Ottenlips la solution de créé des images avec des bordures noires sur haut/bas je pense parce qu'il a utilisé
qui crée une place nouvelle image avec le final_size comme la dimension, même si l'image d'origine n'était pas un carré.
Cela résout le problème et, à mon avis, la solution un peu plus clair: