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 05/07/2017, à 12:02

torxxl

Alléger photos pour le Web

Bonjour,

J'utilisais Photoshop Élément qui a une option "enregistrer pour le Web" et qui permet d’alléger la taille de photos pour le Web.

J'ai rien trouvé qui me permet de faire simplement la même chose.

Des idées ?

D'avance merci

Hors ligne

#2 Le 05/07/2017, à 12:25

Caribou22

Re : Alléger photos pour le Web

Bonjour smile
Personnellement, je réduis simplement la résolution avec Gimp

Hors ligne

#3 Le 05/07/2017, à 13:30

seebz

Re : Alléger photos pour le Web

Salut,
je me suis fais 2 scripts qui pourraient vous intéresser.

En l'état, ils utilisent tous les deux un service distant et remplacent les fichiers originaux.


optimize-jpeg

#!/bin/bash


IFS=$'\n'


is_jpeg(){
	MIME=$(file -i -b "$1" | sed -e 's/;.*//')
	return $(expr "$MIME" == "image/jpeg")
}

optimize(){
	TMP_FILE=`mktemp`

	curl -s \
		-X POST \
		--form "input=@${1};type=image/jpeg" \
		http://jpgoptimiser.com/optimise > "$TMP_FILE"

	# est-ce bien un jpeg ?
	is_jpeg $TMP_FILE
	JPEG=$?

	# sizes
	OLDSIZE=$(stat -c%s "$1")
	NEWSIZE=$(stat -c%s "$TMP_FILE")

	if [ $JPEG ] && [ $NEWSIZE -gt 100 ] && [ "$NEWSIZE" -lt "$OLDSIZE" ]; then
		$(mv "$TMP_FILE" "$1")
	fi
}


FILES=()
if [ $# -gt 0 ]; then

	for file in "$@"; do
		if [ ! -f $file ]; then
			echo "\"${file}\" not found" 1>&2
			exit 1
		fi

		FILES+=($file)
	done

else

	FILES=($(ls -1 2> /dev/null | grep -E \.jpe?g$))

fi


for file in ${FILES[*]}; do
	optimize $file
done


optimize-png

#!/bin/bash


IFS=$'\n'


is_png(){
	MIME=$(file -i -b "$1" | sed -e 's/;.*//')
	return $(expr "$MIME" == "image/png")
}

optimize(){
	TMP_FILE=`mktemp`

	curl -s \
		-X POST \
		--form "input=@${1};type=image/png" \
		http://pngcrush.com/crush > "$TMP_FILE"

	# est-ce bien un png ?
	is_png $TMP_FILE
	PNG=$?

	# sizes
	OLDSIZE=$(stat -c%s "$1")
	NEWSIZE=$(stat -c%s "$TMP_FILE")

	if [ $PNG ] && [ $NEWSIZE -gt 100 ] && [ "$NEWSIZE" -lt "$OLDSIZE" ]; then
		$(mv "$TMP_FILE" "$1")
	fi
}


FILES=()
if [ $# -gt 0 ]; then

	for file in "$@"; do
		if [ ! -f $file ]; then
			echo "\"${file}\" not found" 1>&2
			exit 1
		fi

		FILES+=($file)
	done

else

	FILES=($(ls -1 2> /dev/null | grep \.png$))

fi


for file in ${FILES[*]}; do
	optimize $file
done

Hors ligne

#4 Le 05/07/2017, à 14:55

Brunod

Re : Alléger photos pour le Web

J'utilise convert pour faire des médaillons :

convert * -thumbnail 100x100 converti.jpg

Mais il suffit de le paramétrer autrement.


Windows est un système d'exploitation de l'homme par l'ordinateur. Linux, c'est le contraire...
39 pc linux convertis

Hors ligne

#5 Le 05/07/2017, à 15:11

kholo

Re : Alléger photos pour le Web

salut
voici CUDAIR : "Créer Un Dossier Avec Images Réduites"
c'est un script pour Nautilus à mettre dans ~/.local/share/nautilus/scripts

nautilus ~/.local/share/nautilus/scripts

Ce script crée un sous dossier, copie les images sélectionnées et les réduits.
VERSION 2018 08 16

#!/bin/bash
#**********************************#
# kholo-informatique 2016-2018
# www.kholo-informatique.fr
#**********************************#
# 
#**********************************#
# CUDAIR : "Créer Un Dossier Avec Images Réduites"
#**********************************#
#  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.
#**********************************#
# nomLogiciel="$(basename "$0")" ;
nomLogiciel="${0##*/}" ;
FONCTION="Créer Un Dossier Avec Images Réduites - CUDAIR" ;
#**********************************#
VERSION_LOGICIEL="2018.08.16.1552" ;
#**********************************#
# NOTES DE VERSIONS
#
#**********************************#
# Ce script transforme des photos en différents formats
# dans un sous dossier du nom du format
# si un mauvais format est donné en valeur
# la conversion se basera sur la première valeur pour conserver le ratio d'origine
#**********************************#
frm_error(){
zenity --error --height "260" --width "490" "$@" 2>/dev/null
}
frm_infos(){
zenity --info --height "260" --width "490" "$@" 2>/dev/null
}

## LOCALISATION(){
## VARIABLES TEXTE
#**********************************#
txtLAQUESTION="Choisissez votre résolution"

txtCOMPLEMENT="
Choisissez une option ou tapez une résolution
puis validez...
-------------------------------------
800x600	résolution LxH
ASTUCE :
largeur		300	adapte pour valeur largeur
xhauteur		x400	adapte pour valeur hauteur
-------------------------------------
faites échap ou esc pour quitter"

txtERREUR="
est un répertoire.
usage : sélectionnez un ou plusieurs fichiers
ils seront réduits dans un sous dossier
du nom de la résolution"

txtPhotos_traitees="photos traitées : "



NB_PHOTOS=0

## }
## LOCALISATION

##Variables
dirdest=""

KA="800x600"
KB="1024x768"
KC="2048x1024"
KD="25%"
KE="50%"
KF="75%"

f_log=/dev/null
# f_log="/tmp/leuLog.txt"
# > "$f_log"

_quitter(){
	echo "quitter proprement"
	
	exit 0
}

les_arg="${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS}"
# frm_infos --title="débugage" --text="ARG : ${les_arg}"

[ ${#les_arg} -eq 0 ] && {
	frm_error --text="dans Nautilus, donnez des images en argument"
	exit 65
	}

## On test si une des sélections est un dossier
old_IFS=$IFS
IFS=$'\n'
for un_element in ${les_arg}; do
	# frm_infos --title="débugage" --text=${un_element}
	if [ -d "${un_element}" ]; then
		## il faut sélectionner un ou plusieurs fichiers images
		## pas de dossier
		frm_error --text="${un_element} \n$txtERREUR"
		exit 12
	fi
	infoIMG=$(file -bi "${un_element}")
	## Nombre de photos (normalement !) basé sur type mime
	if [ "$infoIMG"="image"* ]; then
		((NB_PHOTOS++))
	fi
done

IFS=$old_IFS
# frm_infos --title="débugage" --text="Traitement des ${NB_PHOTOS} photos" --timeout "1"

lancement(){
	## dans le texte de la variable résolution 
	## remplacement des espaces éventuels par rien
	resolution="${resolution// /}"

	## ATTENTION
	## Avec la vue en arbre, crée le dossier dest. à la racine de l'arbre en cours

	## création du dossier de destination
	dirdest="$PWD/${resolution}"
	[ ! -d "${dirdest}" ] && mkdir "${dirdest}"

	## Début de la copie et conversion
	local old_IFS=$IFS
	local nbre=0
	IFS=$'\n'
	for arg in ${les_arg} ; do
		((nbre++))
		echo "#${base}\nimage	$nbre / ${NB_PHOTOS}"
		base="${arg##*/}"
		# echo -e "$arg\n\t${base}\n\t${resolution}\n\t${dirdest}" >> /tmp/leuLog.txt

		## Voir si le fichier de dest. n'existe pas déjà
		## si oui renomme l'ancien avec un nombre entre 
		## nom et extension
		[ -f "${dirdest}/${base}" ] && {
			nDouble=0
			while [ -f "${dirdest}/${base%.*}.${nDouble}.${base##*.}" ]
			do
				((nDouble++))
			done
			le_double="${base%.*}.${nDouble}.${base##*.}"
			mv "${dirdest}/${base}" "${dirdest}/${le_double}"
			}

		## TOUT SE PASSE ICI
		cp "${arg}" "${dirdest}/${base}"
		convert "${dirdest}/${base}" -resize ${resolution} "${dirdest}/${base}" ; 

		shift ## SUIVANT !!!
	done | zenity --progress --pulsate \
	--title="${nomLogiciel} - ${VERSION_LOGICIEL}" \
	--text="${txtPhotos_traitees} ${NB_PHOTOS}" --auto-close --auto-kill
	# Notification système
	# notify-send "${txtPhotos_traitees} ${NB_PHOTOS}" ;
	IFS=$old_IFS
}

choisir_resolution(){
	zenity --entry \
		--title="${txtLAQUESTION}" \
		--text="${NB_PHOTOS} photos trouvées\n${txtCOMPLEMENT}" \
		--entry-text="${KB}" "${KA}" "${KB}" "${KC}" "${KD}" "${KE}" "${KF}"
}
## Choix de la résolution ou du facteur de réduction
resolution=$(choisir_resolution) ;
[ $? -eq 0 ] && lancement

exit 0

ANCIENNE VERSION

#!/bin/bash
#**********************************#
# kholo-informatique 2016
# www.kholo-informatique.fr
#**********************************#
# 
#**********************************#
# CUDAIR : "Créer Un Dossier Avec Images Réduites"
#**********************************#
#  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.
#**********************************#
# nomLogiciel="$(basename "$0")" ;
nomlogiciel="${0##*/}"
FONCTION="Créer Un Dossier Avec Images Réduites - CUDAIR" ;
#**********************************#
VERSION_LOGICIEL="2017.03.02.1111" ;
#**********************************#
# NOTES DE VERSIONS
#
#**********************************#
# Ce script transforme des photos en différentes résolution
# dans un sous dossier du nom de la résolution
# si un mauvais format est donné en valeur
# la conversion se basera sur la première valeur pour conserver le ratio d'origine
#**********************************#
# function LOCALISATION {
# VARIABLES TEXTE
#**********************************#
txtLAQUESTION="Choisissez votre résolution"

txtCOMPLEMENT="
Choisissez une option ou tapez une résolution
puis validez...
-------------------------------------
	format : hauteur x largeur
	sans espace 
-------------------------------------
faites échap ou esc pour quitter"

txtERREUR="
est un répertoire.
usage : sélectionnez un ou plusieurs fichiers
ils seront réduits dans un sous dossier
du nom de la résolution"

dirdest=""

KA="800x600"
KB="1024x768"
KC="2048x1024"
KD="25%"
KE="50%"
KF="75%"

txtPhotos_traitees="photos traitées : "

# }
# LOCALISATION

function _quitter {
	echo "quitter proprement"
	
	exit 0
}

# zenity --info --title="débugage" --text="$NAUTILUS_SCRIPT_SELECTED_URIS"
ARG="$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
# zenity --info --title="débugage" --text="ARG : $ARG"

if [ $ARG=="" ]; then
	zenity --info --text="dans Nautilus, donnez des images en argument"
	exit
fi

# On test si une des sélections est un dossier
old_IFS=$IFS
IFS='
'
for i in $ARG; do
	# zenity --info --title="débugage" --text=$i
	if [ -d "$i" ]; then
		# il faut sélectionner un ou plusieurs fichiers images
		# pas de dossier
		zenity --info --text="$i $txtERREUR"
		exit
	fi
done
IFS=$old_IFS

# Nombre de fichiers et donc de photos (normalement !)
NB_PHOTOS=$# ;
# zenity --info --title="débugage" --text="Traitement des $NB_PHOTOS photos" ;

function lancement {
	# remplacement des espaces éventuels par rien
	modele=" "
	remplacement=""
	resolution="${resolution//$modele/$remplacement}"

	dirdest="$resolution" ;
	# création du dossier de destination
	if [ ! -d "$dirdest" ] ; then
		# zenity --info --title="débugage" --text="création du dossier de destination" ;
		mkdir "$dirdest" ;
	fi

	# Début de la copie et conversion
old_IFS=$IFS
IFS='
'
	for arg in $ARG ; do
		base=$(basename -- "$arg") ;
		# name=${base%.*} ;
		# TOUT SE PASSE ICI ***********************************
		# cp "$base" ./"$dirdest" && cd "$dirdest" && convert "$base" -resize $resolution "$base" && cd .. ;
		convert "$dirdest/../$base" -resize $resolution "$dirdest/$base" ; 
		shift
	done  | zenity --progress --pulsate --text="$txtPhotos_traitees $NB_PHOTOS \n$base" --auto-close --auto-kill ;
	# Notification système
	# notify-send "$txtPhotos_traitees $NB_PHOTOS" ;
IFS=$old_IFS
}

# Choix de la résolution ou du facteur de réduction
resolution=$(zenity --entry --title="$txtLAQUESTION" --text="$txtCOMPLEMENT" \
--entry-text="$KB" "$KA" "$KB" "$KC" "$KD" "$KE" "$KF") ;
if [ $? = 0 ]
then
	lancement ;
# else
	# _quitter ;
	# exit 1 ;
fi

exit 0

Dernière modification par kholo (Le 16/08/2018, à 18:57)

Hors ligne

#6 Le 05/07/2017, à 18:49

Compte anonymisé

Re : Alléger photos pour le Web

torxxl a écrit :

J'utilisais Photoshop Élément qui a une option "enregistrer pour le Web" et qui permet d’alléger la taille de photos pour le Web.

J'ai rien trouvé qui me permet de faire simplement la même chose.

Des idées ?

Gimp propose "enregister pour le web..." également dans son menu "fichier" quand on installe le paquet supplémentaire : gimp-plugin-registry

#7 Le 06/07/2017, à 11:02

torxxl

Re : Alléger photos pour le Web

Bonjour,

merci pour vos réponses.

Je vais utiliser Gimp, va falloir que je me décide à l'apprendre :-)

Hors ligne

#8 Le 06/07/2017, à 11:42

nam1962

Re : Alléger photos pour le Web

Brunod a écrit :

J'utilise convert pour faire des médaillons :

convert * -thumbnail 100x100 converti.jpg

Mais il suffit de le paramétrer autrement.

+1 : il n'y a pas plus rapide ou efficace : https://doc.ubuntu-fr.org/imagemagick

On met 5 minutes à ramer pour trouver la bonne commande et le bon réglage et ensuite on peut traiter et optimiser des dossiers entiers en une commande (ça prend le temps qu'il faut si le dossier est balaise).

Accessoirement et quand j'ai la flemme, j'utilise EWWW sur Wordpress (avantage : il crée plusieurs formats pour la même image) https://fr.wordpress.org/plugins/ewww-image-optimizer/

Dernière modification par nam1962 (Le 06/07/2017, à 11:43)


[ Modéré ]

Hors ligne

#9 Le 06/07/2017, à 12:06

moko138

Re : Alléger photos pour le Web

torxxl a écrit :

...et qui permet d’alléger la taille de photos pour le Web.

J'ai rien trouvé qui me permet de faire simplement la même chose.

./viewtopic.php?id=2011303  Le sujet a été traité en détail il y a deux semaines.


%NOINDEX%
Un utilitaire précieux : ncdu
Photo, mini-tutoriel :  À la découverte de dcraw

Hors ligne

#10 Le 06/07/2017, à 12:21

nam1962

Re : Alléger photos pour le Web

Avec un excellent post qui simplifie la vie wink : https://forum.ubuntu-fr.org/viewtopic.p … #p21751385


[ Modéré ]

Hors ligne