Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/12/2013, à 01: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, à 01:19)

Hors ligne