Page 3 sur 3

Re: compression photo

Posté : lun. 8 oct. 2018 10:23
par rhodes38

Dernier message de la page précédente :

Hello Mézig

Comment s"appelle ce script?
Cdlt

Re: compression photo

Posté : lun. 8 oct. 2018 11:48
par mézig
rhodes38 a écrit :Hello Mézig

Comment s"appelle ce script?
Cdlt
Tu y mets le nom que tu veux , ça peut etre abracadabra si tu veux :lol: , ce nom tu le retrouveras dans le clic droit

Re: compression photo

Posté : lun. 8 oct. 2018 14:50
par tioker
mézig a écrit :Tu y mets le nom que tu veux , ça peut etre abracadabra si tu veux :lol: , ce nom tu le retrouveras dans le clic droit
Mézig, je pense que rhodes38 te demande le code source de ton script ou l'endroit où on peut le télécharger. En effet, le clic droit sur une image te proposera l'action si elle est dans le répertoire qui va bien, mais le script qui va avec doit être connu.
Si j'interviens c'est que je suis peut-être aussi intéressé.
J'ai écrit un programme (script) qui fait une compression mais j'utilise un artifice très puissant qui ne traite ... que les png (c'est pour créer des vignettes/icônes pour le web). Je serai curieux de voir celui auquel tu fais référence.
J'espère ne pas m'être inséré dans une discussion et avoir répondu à côté...
Cordialement.

Re: compression photo

Posté : lun. 8 oct. 2018 17:34
par mézig
C'est un script que j'ai trouvé sur Ubuntu-fr , je pense , je ne me souviens plus

Edit: que je suis c... :l j"ai oublié de mettre le script :?
Merci tioker ;)

Code : Tout sélectionner

#!/bin/sh

# Auteur       : Julien Leloup
# Site         : http://leloup.org

# Version      : 1.1
# Date         : 26/01/2011

# Historique :
# - 1.1 - 26/01/2011 - Gestion des espaces dans le nom des fichiers
# - 1.0 - 24/10/2010 - Version initiale

# Dépendances  :
# - zenity
# - imagemagick

# Installation : 
# - Pré-requis : zenity et imagemagick doivent être installés
# - Rendre ce script executable
# - Déposer ce script dans le dossier $HOME/.gnome2/nautilus-scripts

# Utilisation  : Accès par bouton droit / Scripts / image-redim après sélection d'une ou plusieurs images

# Fonctions    :
# - Redimensionnement d'images par lot
# - Paramatrage d'une largeur et d'une hauteur maxi à ne pas dépasser, tout en conservant le ratio.
# - Paramatrage de la qualité de compression
# - Choix de la sortie (Ecrasement, préfixe)
# - Se base sur le type mime pour ne traiter que les images
# - N'agrandit pas les images dont les dimensions sont inférieures aux dimensions choisies



# Teste si l'utilisateur a cliqué sur annuler
f_annuler() {

	if [ "$?" != 0 ] ; then
		# On quitte le programme
		exit
	fi

}

# Message de valeur obligatoire
f_valeur() {

	zenity --error --title="image-redim" --text="Vous devez choisir une valeur"

}



# Teste si au moins un fichier a a été choisi
if [ $# -eq 0 ]; then
	zenity --error --title="image-redim" --text="Vous devez selectionner au moins une image pour utiliser ce programme."
	exit 1
fi



# On force la saisie
while [ ! "$v_dimensions_max" ]; do

	# Choix des dimensions maxi (attention, en cas d'ajout d'une nouvelle dimension, veillez à suivre la même structure <largeur>x<hauteur>)
	v_dimensions_max=`zenity --list --title="image-redim" --text="Sélectionner, conserve le ratio, dimensions max à ne pas dépasser (pixels)" --column="" "choisir..." "640x480" "800x600" "1024x768" "1280x1024" "1680x1050" "1920x1200" --hide-header`
	
	# Si clic sur annuler
	f_annuler

	# Si clic sur valider sans avoir choisi de valeur
	if [ ! "$v_dimensions_max" ]; then
		f_valeur
	fi

done

# Si choix, choisir, saisie de la largeur
if [ "$v_dimensions_max" = "choisir..." ] ; then

	# On force la saisie
	while [ ! "$v_largeur_max" ]; do

		# Saisie de la largeur 
		v_largeur_max=`zenity --entry --title="image-redim" --text="Saisissez une largeur personnalisée"`
	
		# Si clic sur annuler
		f_annuler
	
		# Si clic sur valider sans avoir choisi de valeur
		if [ ! "$v_largeur_max" ]; then
			f_valeur
		fi
		
		# Si la valeur choisie n'est pas un entier positif
		if [ ! $(echo "$v_largeur_max" | grep -E "^[0-9]+$") ] ; then
			zenity --info --text="La largeur maxi doit être un entier positif"
			# Réinitialisation de la valeur saisie
			v_largeur_max=""
		fi
		
	done
	
	# On force la saisie
	while [ ! "$v_hauteur_max" ]; do	
	
		# Saisie de la hauteur
		v_hauteur_max=`zenity --entry --title="image-redim" --text="Saisissez une hauteur"`

		# Si clic sur annuler
		f_annuler
	
		# Si clic sur valider sans avoir choisi de valeur
		if [ ! "$v_hauteur_max" ]; then
			f_valeur
		fi
		
		# Si la valeur choisie n'est pas un entier positif
		if [ ! $(echo "$v_hauteur_max" | grep -E "^[0-9]+$") ] ; then
			zenity --info --text="La hauteur maxi doit être un entier positif"
			# Réinitialisation de la valeur saisie
			v_hauteur_max=""
		fi
		
	done
	
	# Ecriture du choix dans les dimensions maxi
	v_dimensions_max=$v_largeur_max"x"$v_hauteur_max
	
fi



# Choix de la qualité d'image
v_qualite=`zenity --scale --title="image-redim" --text="Saisissez la qualité de l'image produite\n\n 100 : qualité excellente mais image lourde\n 0 : qualité trés mauvaise\n 85 : bon compromis entre qualité et poids" --value=85 --min-value=0 --max-value=100`

# Si clic sur annuler
f_annuler
	


# On force la saisie
while [ ! "$v_sortie" ]; do

	# Choix de la sortie
	v_sortie=`zenity --list --title="image-redim" --text="choisir la sortie" --column="" "Ecrasement des images existantes" "Création d'images avec un préfixe" --hide-header`

	# Si clic sur annuler
	f_annuler

	# Si clic sur valider sans avoir choisi de valeur
	if [ ! "$v_sortie" ]; then
		f_valeur
	fi

done



# Comptage du nombre total de fichiers séléctionnés, images ou non
v_total=`file $* | wc -l`

# Compteur pour barre de progression
v_compteur=0
v_pourcentage=0



# Boucle sur les fichiers séléctionnés
(while [ $# -gt 0 ]; do

	# Récupération du nom du fichier courant
	v_fichier_courant="$1"
		
	# Vérification de son type mime
	v_mime_courant=`file -bi "$v_fichier_courant"`
	v_fichier_est_image=`echo "$v_mime_courant" | grep image | wc -l`
		
	# Si c'est bien une image
	if [ ! $v_fichier_est_image -eq 0 ]; then
	
		# Récupération de la largeur de l'image courante
		v_largeur_avant=`identify -format '%w' "$v_fichier_courant"`
		
		# Récupération de la hauteur de l'image courante
		v_hauteur_avant=`identify -format '%h' "$v_fichier_courant"`
		
		# Récupération de la largeur choisie
		v_largeur_choisie=$(echo $v_dimensions_max | cut -d"x" -f1);
		
		# Récupération de la hauteur choisie
		v_hauteur_choisie=$(echo $v_dimensions_max | cut -d"x" -f2);
							
		# Si au moins une dimension de l'image courante est supérieure ou égale à la dimension correspondante choisie par l'utilisateur
		# (supérieur strict : -gt)
		# (supérieure ou égal : -ge)
		if [ $v_largeur_avant -ge $v_largeur_choisie ] || [ $v_hauteur_avant -ge $v_hauteur_choisie ] ; then

			# Si Ecrasement des images existantes
			if [ "$v_sortie" = "Ecrasement des images existantes" ] ; then				
				convert "$v_fichier_courant" -resize $v_dimensions_max -quality $v_qualite "$v_fichier_courant" 
			fi

			# Si nouvelle image avec un préfixe
			if [ "$v_sortie" = "Création d'images avec un préfixe" ] ; then				
				nouveauprefixe="image_redim_"
				nouveaubasename=`basename "$v_fichier_courant"`
				nouveaunom=$nouveauprefixe$nouveaubasename
				convert "$v_fichier_courant" -resize $v_dimensions_max -quality $v_qualite "$nouveaunom" 
			fi	
						
		fi
		
	fi

	# Incrémentation du compteur de barre de progression
	v_compteur=$(( v_compteur+=1 ))
	
	# Calcul du pourcentage pour barre de progression
	v_pourcentage=$(( v_compteur*100/v_total ))
	
	# Transmission des informations à la barre de progression
	echo "# $v_fichier_courant"
	echo "$v_pourcentage"
	
	shift
done
) | zenity --progress --text="image-redim" --percentage=0 --auto-kill --auto-close

# Fin du programme avec succès ;-)
zenity --info --text="Programme terminé avec succès."

Re: compression photo

Posté : lun. 8 oct. 2018 19:33
par rhodes38
Un grand merci à tioker pour avoir exprimé mon souhait.
Evidemment que te remercie aussi mézig. Je m'y attelle demain.

Re: compression photo

Posté : mar. 9 oct. 2018 02:13
par arghlub
«Mot de modo : »
merci mézig, tioker & rhodes ...
merci pour ce script-Shell (même si j'en suis pas là, ou plus loin que ça)
(merci les gars) ;)

Re: compression photo

Posté : mar. 9 oct. 2018 02:57
par mézig
Oui !... on s'en doute que tu est bien loin devant
on serait a ta hauteur , il n'y aurait pas besoin de forums
mais voila quoi !...

Re: compression photo

Posté : mar. 9 oct. 2018 22:07
par rhodes38
Hello Mézig
J'ai créé un dossier test et inseré 3 photos
Clic droit sur une d'entre elle, dans le menu contextuel j'apercois bien "alléger les photos mais rien ne se passe

Image

Re: compression photo

Posté : mar. 9 oct. 2018 22:35
par mézig
aussi as tu fait clic droit sur le script >> Propriétés >> onglet Permisions et coché la case "Autoriser l'execution"
As tu aussi installé [url=apt://imagemagick]imagemagick[/url]

Re: compression photo

Posté : mer. 10 oct. 2018 08:28
par rhodes38
BINGO!!!!!
J'avais oublié de rendre exécutable
Merci beaucoup
Je vais procéder à plus de tests



Image