2017-07-24 3 views
0

J'essaye de créer un programme qui redimensionnera n'importe quelle image dans un répertoire à 299x299. Ensuite, je veux renommer cette image et la convertir en jpeg, pour que toutes les images soient nommées 0.jpg, 1.jpg, 2.jpg, etc. Je veux aussi déplacer les fichiers convertis dans leur propre répertoire .Renommer, redimensionner et déplacer des fichiers d'image en python

J'ai déjà résolu la partie de redimensionnement de celui-ci. Cependant, lorsque j'ai ajouté le code pour renommer, c'est-à-dire (index = 0, new_image.save) nom_fichier, str (index), + ".jpg" et index + = 1), la partie de redimensionnement ne fonctionne plus. Est-ce que quelqu'un a des suggestions?

C'est ce que j'ai jusqu'à présent:

#!usr/bin/python 

from PIL import Image 
import os, sys 

directory = sys.argv[1] 
for file_name in os.listdir(directory): 
     print ("Converting %s" % file_name + "...") 
     image = Image.open(os.path.join(directory, file_name)) 

     size = 299, 299 
     image.thumbnail(size, Image.ANTIALIAS) 

     w, h = image.size 

     new_image = Image.new('RGBA', size, (255, 255, 255, 255)) 
     new_image.paste(image, ((299 - w)/2, (299 - h)/2)) 

     index = 0 

     new_image_file_name = os.path.join(directory, file_name) 
     new_image.save(file_name, str(index) + ".jpg") 

     index += 1 

print ("Conversion process complete.") 
+0

Nice. Mais ... quelle est votre question? – agtoever

+0

Je veux savoir si quelqu'un a de meilleures suggestions quant à la façon dont je pourrais atteindre les résultats escomptés :) – lostInEncryption

Répondre

1

De l'documentation:

Image.save(fp, format=None, **params)

Enregistre cette image sous le nom de fichier donné . Si aucun format n'est spécifié, le format à utiliser est déterminé à partir de l'extension du nom de fichier, si possible.

La syntaxe correcte pour image.save est:

new_image.save(file_name, 'JPG') 

Pour déplacer un fichier, vous pouvez utiliser shutil.move:

import shutil 
shutil.move(file_name, 'full/path/to/dst/') # the second argument can be a directory 
+0

merci! mais ma question principale était comment renommer les fichiers dans l'ordre séquentiel, puis les déplacer vers un autre répertoire. – lostInEncryption

+0

@lostInEncryption Vérifiez ma modification? –