#1 Le 22/12/2013, à 00:09
- polinux
[Script/python] réduire les images facilement (vignettes)
Bonjour,
Un ami m'a passé il y a plusieurs années un petit script pour réduire automatiquement les images et je m'en sert pour mes sites internets.
le fichier se nome " Vignette" et il est placé dans nautilus.
dernièrement je n'ai pas réussi à l'installer sur mon dernier pc, mais j'ai posté une demande d'aide sur le forum ici
Voici le code de ce script certains d'entre vous doivent le connaître je suppose.
#!/usr/bin/env python
# -*- coding: latin-1 -*-
# Version adaptée à Nautilus
# Appel système (system,mkdir)
import os
# Manipulation des arborescences (join,isdirr)
import os.path
# Pour sortir de l'interpréteur
import sys
import commands
import urllib
# Mise en place des constantes
RepertoireVignette="Vignettes"
Debug=0
def nautilus_script_display_error():
"""This is a general error message display for nautilus scripts"""
import sys
#errors_fd,errors_name=tempfile.mkstemp() #This not available until python 2.3
errors_name=os.tmpnam()
errors_fd=file(errors_name,"w")
etype, emsg, etb = sys.exc_info()
errors_fd.write('line '+str(etb.tb_lineno)+': '+str(etype)+': '+str(emsg)+'\n')
errors_fd.write('\n$PWD: %s' % os.getcwd())
errors_fd.write('\nsys.argv: %s' % str(sys.argv[1:]))
for var in os.environ:
if var.startswith("NAUTILUS_"):
errors_fd.write("\n%s: %s" % (var,os.environ[var].replace('\n',"\\n")))
errors_fd.close()
pid = os.fork()
if pid == 0:
cmd = ["zenity", "--text-info", "--filename=%s" % errors_name, "--title=error", "--width=640", "--height=220"]
os.execvp(cmd[0],cmd)
os.waitpid(pid,0)
os.unlink(errors_name)
if __name__=='__main__':
try:
# Récupération du répertoire courant
Repertoire=os.environ["NAUTILUS_SCRIPT_CURRENT_URI"][7:]
# On se déplace dans ce répertoire
os.chdir(urllib.unquote(Repertoire))
# On vérifie qu'il existe un répertoire de vignette
if not os.path.isdir(RepertoireVignette):
os.mkdir(RepertoireVignette)
# Choix de la taille de réduction
StringCommand='zenity --title "test" --list --radiolist --column "" --column "Taille" FALSE "800x600" TRUE "640x480" FALSE "320x240" FALSE "150x113"'
Resolution=commands.getoutput(StringCommand)
if Debug :
# Ouverture d'un fichier pour le déboguage
FileID=file('log.txt','w')
FileID.write(Repertoire+"\n")
# Récupération des fichiers
for Fichier in os.environ['NAUTILUS_SCRIPT_SELECTED_FILE_PATHS'].split("\n")[0:-1]:
# Nouveau nom de fichier
Path,FileName=os.path.split(Fichier)
#FileID.write(Path +" "+FileName+"\n")
NouveauNom=os.path.join(os.path.join(Path,RepertoireVignette),FileName)
if Debug :
FileID.write("Traitement de "+NouveauNom+"\n")
FileID.write("convert -resize "+Resolution+" '"+Fichier+"' '"+NouveauNom+"'"+"\n")
os.system("convert -resize "+Resolution+" '"+Fichier+"' '"+NouveauNom+"'")
if Debug :
FileID.close()
os.system("zenity --text-info --filename=/home/*****/tmp/test/log.txt")
os.system("zenity --info --text='Réduction terminée'")
except :
nautilus_script_display_error()
paul
Dernière modification par polinux (Le 22/12/2013, à 00:19)
Hors ligne