[PS] traitement par lot, réduire des photos pour le web

ccciolll

Membre expert
Club iGen
Bonjour,

J'ai fait 2 droplets dans PS CS3 pour réduire mes photos à la taille maxi proposée par un site sur lequel je souhaite télécharger des photos.
En effet, puisque ledit site va réduire mes photos à sa taille d'affichage maxi, autant lui envoyer direct à la bonne taille. Avec un ADSL 2mo, envoyer 200 photos de 4 Mo ou 200 photos de 500 ko ça a son importance…

Donc j'ai fait un script tout con
- taille de l'image : largeur xx pixels
- enregistrer pour le web / jpg qualité supérieure
- fermer

et zou.

Mais, pour les photos verticales, ça m'oblige à faire un 2e script (et à les séparer pour les traiter dans un autre droplet).

Et en plus, j'ai parfois de sources photos diverses qui me font des originaux PLUS PETITS que la largeur maxi du site cible. Dans ce cas, il faudrait que lesdites sources ne soient pas retouchées. (concrètement il suffit que je ne les balance pas dans le droplet).

Du coup, je voudrais un script qui fasse
- si largeur supérieure à n, réduire largeur à n
- si hauteur supérieure à n, réduire hauteur à n
- image modifiée par les 2 précédents : enregistrer pour le web
- fermer

Bon c'est pas tant pour le temps que ça va m'économiser que pour le plaisir d'avoir un script du tonnerre qui fasse tout en un coup.

EDIT : dans l'idée, j'aimerais bien appliquer le même genre de contrainte à l'outil recadrage (diminution si l'image recadrée dépasse de la largeur ou hauteur maxi, mais recadrage simple si plus petit.)


RE_EDIT : à défaut, je prendrai volontiers un (ou plusieurs) outil dans le finder qui saurait trier mes fichiers d'abord en "tous les fichiers plus petits que x pixels en largeur et hauteur" et ensuite avec le restant " tous les fichiers dont la hauteur est supérieure à la largeur".
Déjà, ça m'éviterait de trier à la main avant de balancer dans les droplets.
 
Dernière édition:
RE_EDIT : à défaut, je prendrai volontiers un (ou plusieurs) outil dans le finder qui saurait trier mes fichiers d'abord en "tous les fichiers plus petits que x pixels en largeur et hauteur" et ensuite avec le restant " tous les fichiers dont la hauteur est supérieure à la largeur".
Déjà, ça m'éviterait de trier à la main avant de balancer dans les droplets.

Salut,

Tu peux trier tout ça assez simplement dans le Finder, en utilisant les dossiers intelligents.

Il te faudra rajouter les critères de tri "Hauteur en pixels" et "Largeur en pixels" en cochant les cases…
 
Donc j'ai fait un script tout con
- taille de l'image : largeur xx pixels
- enregistrer pour le web / jpg qualité supérieure
- fermer
Salut,

il te faut faire la même chose, mais au lieu d'utiliser "Taille de l'image" il te faut utiliser menu Fichier : Automatisation : Adapter l'image
(J'espère que c'est le même nom dans CS3)

C'est presque la même chose mais ça permet un redimensionnement conditionné par la plus grande dimension de l'image, donc en fonction de son sens.
:up:
 
il te faut faire la même chose, mais au lieu d'utiliser "Taille de l'image" il te faut utiliser menu Fichier : Automatisation : Adapter l'image
(J'espère que c'est le même nom dans CS3)

C'est le même nom dans CS3.

Un bel outil, dommage qu'il redimensionne AUSSI les images plus petites.

Salut,

Tu peux trier tout ça assez simplement dans le Finder, en utilisant les dossiers intelligents.

Il te faudra rajouter les critères de tri "Hauteur en pixels" et "Largeur en pixels" en cochant les cases…

Tu fais comment pour avoir "certaines des conditions suivantes" ? Je n''ai pas ce choix, même dans "autres" (je suis en tiger…)
 
Tu fais comment pour avoir "certaines des conditions suivantes" ? Je n''ai pas ce choix, même dans "autres" (je suis en tiger…)

Il faut presser la touche option (alt) et le bouton + se transforme en points de suspension, comme pour les listes de lecture sur iTunes… Par contre je ne sais pas si c'est valable pour Tiger… :)
 
Non, enfin je n'y arrive pas.
 
Un bel outil, dommage qu'il redimensionne AUSSI les images plus petites.
N'y a t'il pas cette option dans CS3 ?

HD0b.png
 
Non, dommage
 
Au sujet des dossiers intelligents tu clique sur la première fenêtre à gauche (celle ou il est marqué ouverture) et tu verra les différentes options tu choisi autre....
et ensuite tu suis les instructions de notre ami zacromatafalgar.
 
Au sujet des dossiers intelligents tu clique sur la première fenêtre à gauche (celle ou il est marqué ouverture) et tu verra les différentes options tu choisi autre....
et ensuite tu suis les instructions de notre ami zacromatafalgar.

Quelle fenêtre de quoi ? Ça se passe dans un logiciel ?

Où est-ce que ça coince ?
:)

ben quand j'appuie sur alt, le + reste un +
 
ben quand j'appuie sur alt, le + reste un +

Il se peut que cela ne fonctionne pas sur Tiger, si quelqu'un pouvait confirmer ou infirmer…

Je pourrais éventuellement te faire un script qui trie tout ça mais il faudrait me donner les critères de tri exacts… À toi de voir… ;)
 
Ouh la, non, ça ne mérite pas un script.
 
Ne ne casses pas trop la tête non plus, les utilitaires gratuits dédiés à cette tâche pullulent sur le web (on trouve aussi des Actions Automator pour Photoshop et pour Aperçu).

En général il n'utilisent pas des algorithmes de sous-échantillonage aussi sophistiqués que ceux de Photoshop mais pour du tout-venant destiné au web, donc archi-compressé et en petite taille, ça convient très bien.

;)
 
tu peux tester ça qui redimensionne les images à 2Mega pixel max si elle font plus que 2Mega. Il suffit de changer la deuxième ligne pour changer le nombre de pixel max.
A mettre dans l'éditeur applescript puis enregistrer en appli.
Bloc de code:
on open (fichiersImages)
	set tailleMax to 2000000 -- Nombre de pixels max
	repeat with i in fichiersImages
		set posixPathI to POSIX path of (i as text)
		set pixelH to second paragraph of (do shell script "sips -g pixelHeight " & quoted form of posixPathI) as text
		set pixelL to second paragraph of (do shell script "sips -g pixelWidth " & quoted form of posixPathI) as text
		set text item delimiters to ":"
		set H to (second text item of pixelH) as integer
		set L to (second text item of pixelL) as integer
		set AppleScript's text item delimiters to ""
		if (H * L > tailleMax) then
			set x to ((tailleMax / (L * H)) ^ 0.5)
			set NH to H * x as integer -- Nouvelle hauteur
			set NL to L * x as integer -- Nouvelle largeur
			if NH > NL then
				set Z to NH
			else if NH = NL then
				set Z to NH
			else
				set Z to NL
			end if
			do shell script "sips -Z " & Z & " " & quoted form of posixPathI
		end if
	end repeat
end open

Si ton site te dit "les images doivent faire tant par tant max" et bien tu mets le résultat de "tant par tant" dans tailleMax.
Ça prend tout les principaux types d'images, mais attention aux pdf/ai qui passent à 150dpi
 
Dernière édition:
Très bien -et simple d'utilisation- pour réduire le poids d'une image (quoiqu'une compresion plus élevée soit préférable à une réduction des dimensions, un fichier de magicPDF le montre très bien).
Cependant, ce script ne convient pas forcément si on souhaite obtenir des images d'une taille-maxi-en-pixels bien précise (ou alors j'ai mal compris ton explication)
 
Très bien -et simple d'utilisation- pour réduire le poids d'une image (quoiqu'une compresion plus élevée soit préférable à une réduction des dimensions, un fichier de magicPDF le montre très bien).
Cependant, ce script ne convient pas forcément si on souhaite obtenir des images d'une taille-maxi-en-pixels bien précise (ou alors j'ai mal compris ton explication)
C'est vrai, mais ça dépend de ce que te dit ton site. Si c'est "tant par tant" max, ou "tant de Ko max"

Donc :

Si tu veux une dimension précise, c'est plus simple : tu peux fixer la variable Z
ex
Bloc de code:
on open (fichiersImages)
	set Z to 1600 -- Le plus grand côté sera à 1600 pixel
	repeat with i in fichiersImages
set posixPathI to POSIX path of (i as text)
			do shell script "sips -Z " & Z & " " & quoted form of posixPathI
	end repeat
end open

Pour la compression : tu change après -s formatOptions : [low ou normal ou high ou best ]
Bloc de code:
on open (fichiersImages)
set Z to 1600 -- Le plus grand côté sera à 1600 pixel
	repeat with i in fichiersImages
set posixPathI to POSIX path of (i as text)
			do shell script "sips -Z " & Z & " -s format jpeg -s formatOptions best " & quoted form of posixPathI
	end repeat
end open

Enfin, si tu veux pouvoir fixer la taille au lancement du script :
Bloc de code:
on open (fichiersImages)
	set Z to (text returned of (display dialog "Quelle dimension max ?" default answer "En pixel…")) as integer
	repeat with i in fichiersImages
		set posixPathI to POSIX path of (i as text)
		do shell script "sips -Z " & Z & " -s format jpeg -s formatOptions best " & quoted form of posixPathI
	end repeat
end open

Si tu lances ton terminal et tape : "man sips" tu verras toutes les options possibles de cette commande. "q" pour quitter le manuel, flèche du bas/haut pour défiler.

Ou plus simple : ici
 
Dernière édition:
  • J’aime
Réactions: ccciolll