Résolu le 10-02-19 Réduction taille des images contenues dans un répertoire et les sous-répertoire inclus

Installation, configuration et utilisation des logiciels que vous souhaitez installer.
Avatar du membre
tioker
Messages : 980
Enregistré le : sam. 6 mai 2017 00:33
Localisation : Anjou...Feu !
Contact :

Réduction taille des images contenues dans un répertoire et les sous-répertoire inclus

Message par tioker »

Bonjour,
Le besoin est dans le titre. La finalité: archiver des photos d'origine pour ne les garder qu'à la taille correspondant aux équipements de visualisation (1920*1080).
Converseen nécessite de désigner les images sans possibilité de les désigner par wildcard, sous-répertoire compris (à priori).
Faut-il scripter (ImageMagick) ou existe-t-il un moyen plus ergonomique ?
Merci de votre retour d'expérience.
Modifié en dernier par tioker le jeu. 15 mars 2018 16:46, modifié 2 fois.
HP Victus 16: Mint 21.3 Cinnamon 6,0,4 + Windows 11 - Ryzen 5 5600H - NVIDIA GeForce GTX 1650 - Mem 16Go - SSD 512Go
pCloud Synchronisation en temps réel des 4 dossiers personnels

mézig
Messages : 1841
Enregistré le : mar. 14 nov. 2017 14:40

Re: Réduction taille des images d'un répertoire et sous-répertoire.

Message par mézig »

Salut,

je n'ai pas bien compris ton probleme , tu voudrais redimensionner un repertoire complet a une dimension ?

le clic droit et un script nautilus sur un répertoire créera un autre répertoire avec les fichiers aux dimensions souhaitées

Image
Intel Pentium Dual CPU E2140 -- Nvidia GF108 -- 4 Go de RAM -- Ubuntu 18.10 -- DEEPIN 15.11
Intel Pentium CPU 4405U @ 2.10GHz × 4 -- Intel HD Graphics 510 (Skylake GT1) -- 4 Go de RAM -- Ubuntu 19.04 -- Ubuntu 18.04 -- DEEPIN 15.11 avec partition de données commune

Avatar du membre
tioker
Messages : 980
Enregistré le : sam. 6 mai 2017 00:33
Localisation : Anjou...Feu !
Contact :

Re: Réduction taille des images d'un répertoire et sous-répertoire.

Message par tioker »

Je voudrais réduire toutes les photos d'un répertoire (et des sous-répertoires dépendants) pour les mettre à une taille identique.
Dans ta vidéo, je vois bien Nautilus auquel on associe un script. Et mes questions liées sont donc:
- traite-t-il les sous-répertoires ?
- sait-il écraser les photos d'origine pare le nouveau format ?
- un script Nautilus est-il utilisable par Nemo et est-il standard ?

Sinon tu as bien compris mon sujet que j'aurai pu mieux décrire. Je vais modifier le sujet de mon premier message.
HP Victus 16: Mint 21.3 Cinnamon 6,0,4 + Windows 11 - Ryzen 5 5600H - NVIDIA GeForce GTX 1650 - Mem 16Go - SSD 512Go
pCloud Synchronisation en temps réel des 4 dossiers personnels

mézig
Messages : 1841
Enregistré le : mar. 14 nov. 2017 14:40

Re: Réduction taille des images contenues dans un répertoire et les sous-répertoire inclus

Message par mézig »

Oui n'importe quel script dit "nautilus" (parce que nautilus est a la base de nemo ou caja) peut fonctionner sur Nemo, Caja et meme Thunar

Celui que je propose va bien modifier tout un repertoire et mettre les fichiers modifiés dans un sous repertoire, mais ne va pas etre efficace sur un sous répertoire
Mais je pense faisable en modifiant le script.
Intel Pentium Dual CPU E2140 -- Nvidia GF108 -- 4 Go de RAM -- Ubuntu 18.10 -- DEEPIN 15.11
Intel Pentium CPU 4405U @ 2.10GHz × 4 -- Intel HD Graphics 510 (Skylake GT1) -- 4 Go de RAM -- Ubuntu 19.04 -- Ubuntu 18.04 -- DEEPIN 15.11 avec partition de données commune

Avatar du membre
tioker
Messages : 980
Enregistré le : sam. 6 mai 2017 00:33
Localisation : Anjou...Feu !
Contact :

Re: Réduction taille des images contenues dans un répertoire et les sous-répertoire inclus

Message par tioker »

Bonjour,
J'ai récupéré les scripts d'un ancien post du forum.
J'ai trouvé un script qui permet de boucler sur les répertoires.

Code : Tout sélectionner

#!/bin/bash
cd
list=`find /home/username/Images -type d`
for directory in $list; do
cd $directory
mogrify -resize 1920x1920 *.jpg
cd
done
Je vais mettre tout ça dans un checkeur et normalement le cocktail devrait être savoureux à l'image de ce que je veux.
Merci, je mets à résolu.
HP Victus 16: Mint 21.3 Cinnamon 6,0,4 + Windows 11 - Ryzen 5 5600H - NVIDIA GeForce GTX 1650 - Mem 16Go - SSD 512Go
pCloud Synchronisation en temps réel des 4 dossiers personnels

Avatar du membre
débitant
modérateur
Messages : 11536
Enregistré le : mar. 14 juil. 2015 18:22
Localisation : Lorraine France

Re: Réduction taille des images contenues dans un répertoire et les sous-répertoire inclus

Message par débitant »

ce qui serait bien c'est qu'une fois le checkeur bien secoué, tu nous mettes le résultat ;)

mézig
Messages : 1841
Enregistré le : mar. 14 nov. 2017 14:40

Re: Réduction taille des images contenues dans un répertoire et les sous-répertoire inclus

Message par mézig »

Je connais tres bien ces scripts ;) mais je ne les utilise plus
il faut installer mogrify et apparemment pas dans les dépots , enfin sur Ubuntu

Edit: mogrify doit faire partie de imagemagick je crois
j'ai essayé des scripts avec mogrify et ça fonctionne
Intel Pentium Dual CPU E2140 -- Nvidia GF108 -- 4 Go de RAM -- Ubuntu 18.10 -- DEEPIN 15.11
Intel Pentium CPU 4405U @ 2.10GHz × 4 -- Intel HD Graphics 510 (Skylake GT1) -- 4 Go de RAM -- Ubuntu 19.04 -- Ubuntu 18.04 -- DEEPIN 15.11 avec partition de données commune

Avatar du membre
tioker
Messages : 980
Enregistré le : sam. 6 mai 2017 00:33
Localisation : Anjou...Feu !
Contact :

Re: Réduction taille des images contenues dans un répertoire et les sous-répertoire inclus

Message par tioker »

Oui en effet.
Convert (conversion de fichier - A vers B) et mogrify (modification de fichier - A sur A) sont dans la distribution de Imagemagick; je les utilise sur Raspberry.
Je vais me mettre au script; je vous livre mon travail ASAP.
Cdlt
PS: au moins ce script m'aura permis de découvrir la commande "zenity". Super.
HP Victus 16: Mint 21.3 Cinnamon 6,0,4 + Windows 11 - Ryzen 5 5600H - NVIDIA GeForce GTX 1650 - Mem 16Go - SSD 512Go
pCloud Synchronisation en temps réel des 4 dossiers personnels

Avatar du membre
tioker
Messages : 980
Enregistré le : sam. 6 mai 2017 00:33
Localisation : Anjou...Feu !
Contact :

Re: Réduction taille des images contenues dans un répertoire et les sous-répertoire inclus

Message par tioker »

débitant a écrit :ce qui serait bien c'est qu'une fois le checkeur bien secoué, tu nous mettes le résultat ;)
Bon. On ne va pas mettre ça dans les scripts Nautilus ... ou Nemo. Rappel --> Les scripts des explorateurs fichiers se mettent là --> /home/Utilisateur/.local/share/nemo ... pour Nemo...
J'ai donc écrit un petit script qui fonctionne (chez moi), ce qui m'a permis de compléter mes connaissances sur la fonction zenity (boîte de dialogue hyper complète, j'en reviens pas tout ce qu'il y a), sur la gestion des séparateurs (IFS qui me permet de traiter les noms avec des espaces - séparateur standard). En deux mots, ce script demande -1- sur quel répertoire on veut travailler -2- Est-ce qu'on inclut les sous-répertoires -3- la taille des fichiers finaux (rassurez-vous il garde les proportions; si le fichier fait 300x100 et le filtre 60x60, le résultat sera 60x20) -4- Les extensions traités (à compléter pour vous).

Code : Tout sélectionner

#!/bin/bash
#-------------------Inquire Folder
txt_title="Folder"; txt_text="Select the Folder"
Folder=`zenity --title "$txt_title" --text "$txt_text" --file-selection --directory`
if [ "$?" != 0 ] ; then exit ; fi
#-------------------Inquire if SubFolders are included
txt_title="SubFolder Included"; txt_text="Include SubFolder ?"
SubFolder=`zenity --title "$txt_title" --text "$txt_text" --list --radiolist --column="Check" --column="Response" --column="Comment" \
	FALSE Yes "Include SubFolder" TRUE No "Exclude SubFolder"`
if [ "$?" != 0 ] ; then exit ; fi
#-------------------Inquire Final Image Size
txt_title="ImageSize"; txt_text="Final Image Size"
ImgSize=`zenity --title "$txt_title" --text "$txt_text" --list --radiolist --separator=" " --column=Check --column=Size --column=Format --height=512 \
	FALSE "60x60" "Square" FALSE "120x120" "Square" FALSE "240x240" "Square" FALSE "480x480" "Square" FALSE "512x512" "Square" FALSE "1024x1024" "Square" \
	FALSE "800x600" "4/3" FALSE "1200x900" "4/3" FALSE "1800x1350" "4/3" \
	TRUE "1920x1080" "16/9ème"`
if [ "$?" != 0 ] ; then exit ; fi
#-------------------Inquire Image type converted
txt_title="Extension"; txt_text="[Multiple] Extension[s] selected"
Extension=`zenity --title "$txt_title" --text "$txt_text" --list --checklist --separator="|" --column=Check --column=Extension --height=512 \
	FALSE "jpg" FALSE "JPG" FALSE "jpeg" FALSE "JPEG" \
	FALSE "png" FALSE "PNG"`
if [ "$?" != 0 ] ; then exit ; fi
#-------------------Standard separator modified
IFS=$'|\t\n'
#-------------------Loop on Folder[s]
cd $Folder
if [ "$SubFolder" != "Yes" ] ; then listFolder=$Folder ; else listFolder=`find -type d -printf '%p|'`; fi
for fold in ${listFolder[@]}
	do cd $fold
#-------------------Loop on file extension
	for Ext in ${Extension[@]}
		do if ls *.$Ext > /dev/null 2>&1 ; then mogrify -resize $ImgSize *.$Ext ; fi
		done
	cd $Folder
	done
exit
Comme à mon habitude, j'ai fait concis et mon script est sans garantie. Chez moi j'ai un NAS et ce con ajoute partout des répertoires pour son indexation (...@eaDir...). Dans mon script j'ai retiré l'exclusion pour aller plus vite mais si ça intéresse quelqu'un ...

Voilà. Débitant (et d'autres j'espère) sera content. Mon checkeur est secoué ... et vidé. Prosit !. Et A plus !

PS: le mogrify convertit un fichier image sur lui-même. Le Convert crée une copie. A vous d'adapter à vos besoins. Si vous voulez vraiment le mettre dans un script Nemo, adapter le premier paragraphe avec un if [ $# -eq 0 ] .
re-PS: Spécial arghlub, je préfère définitivement le CamelCase au camelCase :mrgreen:
re-re-PS: script très largement inspiré de reduction-taille-photos.sh; je sais plus où je l'ai trouvé mais ça a été mon point de départ.
HP Victus 16: Mint 21.3 Cinnamon 6,0,4 + Windows 11 - Ryzen 5 5600H - NVIDIA GeForce GTX 1650 - Mem 16Go - SSD 512Go
pCloud Synchronisation en temps réel des 4 dossiers personnels

mézig
Messages : 1841
Enregistré le : mar. 14 nov. 2017 14:40

Re: Réduction taille des images contenues dans un répertoire et les sous-répertoire inclus

Message par mézig »

Salut tioker,
Ne fonctionne pas chez moi , j'ai bien les boites de dialogue zenity qui fonctionnent mais aucune intervention sur les fichiers
Intel Pentium Dual CPU E2140 -- Nvidia GF108 -- 4 Go de RAM -- Ubuntu 18.10 -- DEEPIN 15.11
Intel Pentium CPU 4405U @ 2.10GHz × 4 -- Intel HD Graphics 510 (Skylake GT1) -- 4 Go de RAM -- Ubuntu 19.04 -- Ubuntu 18.04 -- DEEPIN 15.11 avec partition de données commune

Répondre