Gacko
Messages : 9
Enregistré le : 26 mai 2013, 20:52
Localisation : Maine-et-Loire
Contact : Envoyer un message privé

Réduire taille des images

17 juin 2013, 15:41

Bonjour,
Ayant l'habitude avec Ubuntu 12.04 de faire un clic droit pour déduire la taille et le poids de mes photos j'ai installé nautilus-image-converter sur Xubuntu mais rien n'apparait dans le menu déroulant du clic droit. Y'aurait il incompatibilité ?
Modifié en dernier par Gacko le 17 juin 2016, 11:18, modifié 1 fois.
Xubuntu 13.04 sur P4 à 3.2Ghz + Win$ 7 comme roue de secours

k-bag
Messages : 62
Enregistré le : 04 mai 2012, 09:49
Contact : Envoyer un message privé Site Internet

Re: Réduire taille des images

17 juin 2013, 17:43

Hello.
Gacko a écrit :Bonjour,
Ayant l'habitude avec Ubuntu 12.04 de faire un clic droit pour déduire la taille et le poids de mes photos j'ai installé nautilus-image-converter sur Xubuntu mais rien n'apparait dans le menu déroulant du clic droit. Y'aurait il incompatibilité ?
Logique absolue :D Le gestionnaire de fichiers de Xubuntu par défaut est Thunar, non pas Nautilus qui est propre à Gnome (Et encore, maintenant il se nomme Files).

Pour ce que tu veux faire, tu peux définir une action personnalisée dans Thunar.
Xubuntu 12 (RÀS) -- Win$ 7 (Le "pas mal" en fin compte)
" L'intelligence, c'est pas sorcier, il suffit de penser à une connerie et de dire l'inverse. "

Gacko
Messages : 9
Enregistré le : 26 mai 2013, 20:52
Localisation : Maine-et-Loire
Contact : Envoyer un message privé

Re: Réduire taille des images

17 juin 2013, 21:18

Merci, merci mais je ne suis pas le meilleur des informaticiens.
Au cours des années je suis passé d'Apple à Windows à Ubuntu/Xubuntu pour toujours trouver plus simple et plus stable. Et finalement l'OS que je préfère c'est l'Android de la tablette de mon fils !

Tout ça pour dire que j'ai passé ma soirée d'hier à essayer de définir une action personnalisée pointant vers un script de redimensionnement trouvé ici http://thelinuxchronicles.blogspot.ca/2 ... otate.html mais ça n'a rien donné de fonctionnel...
Xubuntu 13.04 sur P4 à 3.2Ghz + Win$ 7 comme roue de secours

cinaptix
Messages : 89
Enregistré le : 18 mai 2013, 19:17
Localisation : TOURS - 37
Contact : Envoyer un message privé

Re: Réduire taille des images

23 juin 2013, 13:41

Le script :

Code : Tout sélectionner

#!/bin/bash
#
# Author : Mathieu Vilaplana <mathieu@creationgif.com>
# Author : Matthieu MARC <matthieu.marc@wanadoo.fr>
#
# Copyright (C) 2005,2006  Charles Bouveyron <charles.bouveyron@free.fr>
# 
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

# pour l'internationalisation des messages	
# to generate the i18n file from .po file :
# $ msgfmt -o .locale/fr/LC_MESSAGES/nis.mo .locale/fr/LC_MESSAGES/fr.po
export TEXTDOMAIN="nis"
export TEXTDOMAINDIR=`dirname $0`"/.locale/"

MAXCPT=50000;

nb_images=0;
selection="";

txt_error="`gettext 'error'`"
#test if a file has been selected
if [ $# -eq 0 ]; then
	# zenity --error --title=$txt_error --text="`gettext 'You must select at least 1 file to process'`"
	here=`pwd`"/."
	files=`zenity --file-selection --multiple --separator="|" --filename="$here"`"|"
	#if $? != 0, user click on cancel button, so exit
	if [ "$?" != 0 ] ; then
		exit
	fi
	cpt=0
	# I put all filename in $selection here because I didn't managed to put filenames with whitespace in $*
	while [ ${#files} -gt 0 ]; do
		f="`echo $files |cut -f1 -d'|'`"
		isimage=`file -bi "$f" |grep -c image`
		if [ $isimage -eq 1 ]; then
			selection[$nb_images]=$f
			let "nb_images++"
		fi
		files=`echo $files |cut -f2- -d"|"`
		let "cpt++"
		# only to avoid infinite loop (do not occured normaly, but nobody never know.. perhaps!)
		if [ $cpt -gt $MAXCPT ]; then
			shift
		fi
	done
fi

#===================================
#       SELECT SIZE DIALOG
txt_text="`gettext 'Choose which size to scale to'`"
txt_title=$txt_text
txt_size="`gettext 'size'`"

imgsize=`zenity --title "$txt_title" --text "$txt_text" --list --radiolist --separator=" " --column="" --column="$txt_size" FALSE "160x120" FALSE "320x240" FALSE "640x480" TRUE "800x600" FALSE "1024x768" FALSE "1280x960" FALSE "1600x1200" --height=260`

#if $? != 0, user click on cancel button, so exit
if [ "$?" != 0 ] ; then
	exit
fi

#user must select a target size
imgsize=`echo $imgsize | sed 's/ max//g'`
if [ ! "$imgsize" ]; then
	zenity --error --title=$txt_error --text="`gettext 'select a target size'`"
	# just restart myself (more user friendly I think)
	($0 "$*")&
	exit
fi

#transform 640x480 en 640x640 for convert to respect proportions
himgsize=$imgsize
val1=`echo "$imgsize" | awk -F'x' '{ print $1  }'`
imgsize="${val1}x${val1}"

#       END SELECT SIZE DIALOG
#=========================


#Select only images
while [ $# -gt 0 ]; do
	isimage=`file -bi "$1" | grep -c image` 
	if [ $isimage -eq 1 ]; then
		selection[$nb_images]=$1
		let "nb_images++"
	else
		isdir=`file -b "$1" |grep -c directory`
		if [ $isdir -eq 1 ]; then
			for f in `ls -1 "$1"`; do
				isimage=`file -bi "$1/$f" |grep -c image`
				if [ $isimage -eq 1 ]; then
					selection[$nb_images]="$1/$f"
					let "nb_images++"
				fi
			done
		fi
	fi
	shift
done

n=$nb_images
let "n=n-1"
(for i in `seq 0 $n`;do
	picture=${selection[$i]}
	img_filename=`basename "$picture"`
	img_dirname=`dirname "$picture"`

	#create directory if not exist and at least one image to process
	if [ ! -d "$img_dirname/$himgsize"  ]; then
		mkdir -p "$img_dirname/$himgsize"
	fi

	let "compteur += 1"
	echo "`gettext '# Processing image'` $compteur / $nb_images $img_filename ..."
	convert -quality 80 -resize $imgsize "$picture" "$img_dirname/$himgsize/$img_filename"
	#convert -quality 80 -resize $imgsize "$picture" $himgsize/"$picture"
	let "progress = compteur*100/nb_images"
	echo $progress
done
) | zenity --progress --auto-close --title="`gettext 'Scaling images'`" --text="`gettext 'Processing images ...'`"  --percentage=0

(gnome-open "`dirname \"${selection[0]}\"`/$himgsize") &
exit
L'enregistrer, le rendre exécutable, créer une action personnalisée qui pointe dessus.

genre : ' /home/user/.scripts/le_script_en_question' %F (créer un répertoire caché pour stocker les scripts)
cocher : Fichiers images

Simple et fonctionnel.
Xubuntu 18.04 (64 bits) sur Pentium G3420, 3,2 Ghz et 8 Go de RAM à 1600 Mhz - SSD 64 Go - HDD 500 Go

Gacko
Messages : 9
Enregistré le : 26 mai 2013, 20:52
Localisation : Maine-et-Loire
Contact : Envoyer un message privé

Re: Réduire taille des images

23 juin 2013, 14:53

Merci cinaptix mais il y a surement un bug dans le script :(
Quand je coche la taille de l'image choisie puis clique sur OK un message apparait:

Image
Xubuntu 13.04 sur P4 à 3.2Ghz + Win$ 7 comme roue de secours

cinaptix
Messages : 89
Enregistré le : 18 mai 2013, 19:17
Localisation : TOURS - 37
Contact : Envoyer un message privé

Re: Réduire taille des images

23 juin 2013, 18:08

Bizarre !
Chez moi ça fonctionne impeccablement sous Xubuntu 13.04 et ça fonctionnait de la même manière sous Ubuntu 10.04 (À l'origine c'est fait pour fonctionner sous gnome avec nautilus script).

Je n'ai rien modifié dedans.
Xubuntu 18.04 (64 bits) sur Pentium G3420, 3,2 Ghz et 8 Go de RAM à 1600 Mhz - SSD 64 Go - HDD 500 Go

cinaptix
Messages : 89
Enregistré le : 18 mai 2013, 19:17
Localisation : TOURS - 37
Contact : Envoyer un message privé

Re: Réduire taille des images

23 juin 2013, 18:14

Le fichier tel qu'il fonctionne chez moi est récupérable ici : http://dl.free.fr/tLy6dBaWz
Xubuntu 18.04 (64 bits) sur Pentium G3420, 3,2 Ghz et 8 Go de RAM à 1600 Mhz - SSD 64 Go - HDD 500 Go

Gacko
Messages : 9
Enregistré le : 26 mai 2013, 20:52
Localisation : Maine-et-Loire
Contact : Envoyer un message privé

Re: Réduire taille des images

23 juin 2013, 19:09

Génial cinaptix avec ton fichier ça fonctionne parfaitement :D Un grand merci à toi, cette réduction par clic droit est vraiment quelque chose dont j'avais du mal à me passer.
Xubuntu 13.04 sur P4 à 3.2Ghz + Win$ 7 comme roue de secours

slebourdon
Messages : 1
Enregistré le : 14 août 2015, 11:43
Contact : Envoyer un message privé

Re: [Résolu] Réduire taille des images

14 août 2015, 11:50

Bonjour,

Merci à cinaptix pour son script, j'ai effectué une modification pour le faire fonctionner sur Xubuntu 14.04 : à l'avant dernière ligne j'ai remplacé gnome-open (non présent par défaut sur la 14.04) par thunar.

Code : Tout sélectionner

(thunar "`dirname \"${selection[0]}\"`/$himgsize") &
exit
Y-a-t-il un "dépôt" centralisé pour les scripts thunar ?

Cordialement
Stéphane
Xubuntu 14.04 LTS

pingux
Messages : 2460
Enregistré le : 28 déc. 2011, 17:19
Localisation : Belgique
Contact : Envoyer un message privé

Re: [Résolu] Réduire taille des images

16 août 2015, 09:27

Hello slebourdon,
Y-a-t-il un "dépôt" centralisé pour les scripts thunar ?
Tu pourras trouver ton bonheur ICI, uniquement en anglais malheureusement.
Dura Lex sed Lex

masaruta4at
Messages : 6
Enregistré le : 07 sept. 2015, 10:58
Contact : Envoyer un message privé

Re: [Résolu] Réduire taille des images

09 sept. 2015, 12:13

Merci cinaptix mais il y a surement un bug dans le script.
บาคาร่าออนไลน์

cinaptix
Messages : 89
Enregistré le : 18 mai 2013, 19:17
Localisation : TOURS - 37
Contact : Envoyer un message privé

Re: [Résolu] Réduire taille des images

10 sept. 2015, 10:22

Ce script fonctionne correctement sur ma config.

Code : Tout sélectionner

#!/bin/bash
#
# Author : Mathieu Vilaplana <mathieu@creationgif.com>
# Author : Matthieu MARC <matthieu.marc@wanadoo.fr>
#
# Copyright (C) 2005,2006  Charles Bouveyron <charles.bouveyron@free.fr>
# 
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

# pour l'internationalisation des messages	
# to generate the i18n file from .po file :
# $ msgfmt -o .locale/fr/LC_MESSAGES/nis.mo .locale/fr/LC_MESSAGES/fr.po
export TEXTDOMAIN="nis"
export TEXTDOMAINDIR=`dirname $0`"/.locale/"

MAXCPT=50000;

nb_images=0;
selection="";

txt_error="`gettext 'error'`"
#test if a file has been selected
if [ $# -eq 0 ]; then
	# zenity --error --title=$txt_error --text="`gettext 'You must select at least 1 file to process'`"
	here=`pwd`"/."
	files=`zenity --file-selection --multiple --separator="|" --filename="$here"`"|"
	#if $? != 0, user click on cancel button, so exit
	if [ "$?" != 0 ] ; then
		exit
	fi
	cpt=0
	# I put all filename in $selection here because I didn't managed to put filenames with whitespace in $*
	while [ ${#files} -gt 0 ]; do
		f="`echo $files |cut -f1 -d'|'`"
		isimage=`file -bi "$f" |grep -c image`
		if [ $isimage -eq 1 ]; then
			selection[$nb_images]=$f
			let "nb_images++"
		fi
		files=`echo $files |cut -f2- -d"|"`
		let "cpt++"
		# only to avoid infinite loop (do not occured normaly, but nobody never know.. perhaps!)
		if [ $cpt -gt $MAXCPT ]; then
			shift
		fi
	done
fi

#===================================
#       SELECT SIZE DIALOG
txt_text="`gettext 'Choose which size to scale to'`"
txt_title=$txt_text
txt_size="`gettext 'size'`"

imgsize=`zenity --title "$txt_title" --text "$txt_text" --list --radiolist --separator=" " --column="" --column="$txt_size" FALSE "160x120" FALSE "320x240" FALSE "640x480" FALSE "800x600" FALSE "1024x768" TRUE "1280x960" FALSE "1600x1200" FALSE "2048x1536" FALSE "2400x1800" --height=325`

#if $? != 0, user click on cancel button, so exit
if [ "$?" != 0 ] ; then
	exit
fi

#user must select a target size
imgsize=`echo $imgsize | sed 's/ max//g'`
if [ ! "$imgsize" ]; then
	zenity --error --title=$txt_error --text="`gettext 'select a target size'`"
	# just restart myself (more user friendly I think)
	($0 "$*")&
	exit
fi

#transform 640x480 en 640x640 for convert to respect proportions
himgsize=$imgsize
val1=`echo "$imgsize" | awk -F'x' '{ print $1  }'`
imgsize="${val1}x${val1}"

#       END SELECT SIZE DIALOG
#=========================


#Select only images
while [ $# -gt 0 ]; do
	isimage=`file -bi "$1" | grep -c image` 
	if [ $isimage -eq 1 ]; then
		selection[$nb_images]=$1
		let "nb_images++"
	else
		isdir=`file -b "$1" |grep -c directory`
		if [ $isdir -eq 1 ]; then
			for f in `ls -1 "$1"`; do
				isimage=`file -bi "$1/$f" |grep -c image`
				if [ $isimage -eq 1 ]; then
					selection[$nb_images]="$1/$f"
					let "nb_images++"
				fi
			done
		fi
	fi
	shift
done

n=$nb_images
let "n=n-1"
(for i in `seq 0 $n`;do
	picture=${selection[$i]}
	img_filename=`basename "$picture"`
	img_dirname=`dirname "$picture"`

	#create directory if not exist and at least one image to process
	if [ ! -d "$img_dirname/$himgsize"  ]; then
		mkdir -p "$img_dirname/$himgsize"
	fi

	let "compteur += 1"
	echo "`gettext '# Processing image'` $compteur / $nb_images $img_filename ..."
	convert -quality 80 -resize $imgsize "$picture" "$img_dirname/$himgsize/$img_filename"
	#convert -quality 80 -resize $imgsize "$picture" $himgsize/"$picture"
	let "progress = compteur*100/nb_images"
	echo $progress
done
) | zenity --progress --auto-close --title="`gettext 'Scaling images'`" --text="`gettext 'Processing images ...'`"  --percentage=0

(thunar "`dirname \"${selection[0]}\"`/$himgsize") &
exit
Xubuntu 18.04 (64 bits) sur Pentium G3420, 3,2 Ghz et 8 Go de RAM à 1600 Mhz - SSD 64 Go - HDD 500 Go

Gacko
Messages : 9
Enregistré le : 26 mai 2013, 20:52
Localisation : Maine-et-Loire
Contact : Envoyer un message privé

Re: [Résolu] Réduire taille des images

17 juin 2016, 11:17

Bonjour le forum,
Ayant installé Xubuntu 16.04 sur un nouveau PC le script ci-dessus ne fonctionne plus. D'ailleurs bizarrement quand je veux l'enregistrer, l'option à cocher : Fichiers images n’apparaît plus.
Quelque chose aurait changé dans Xubuntu ?
Xubuntu 13.04 sur P4 à 3.2Ghz + Win$ 7 comme roue de secours

Retourner vers « Xubuntu »