IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Redimensionner, compresser dans le terminal [Résolu]
Options
hubeert
posté 1 Nov 2011, 10:06
Message #1


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 951
Inscrit : 19 May 2005
Lieu : Chateauneuf du pape
Membre no 39 495



coucou
Bonjour a tous..
voici ce que je cherche a faire dans le terminal.
ouvrir un fichier jpeg
le redimensionner hauteur et largeur en pixel.(par exemple 800 *600) ou encore la hauteur et la largeur liée biggrin.gif
Et le compresser a 120 ko maxi.
Alors je n'ai aucune idée de la difficulté a faire ceci ni même si cela est faisable !!

en tout cas merci par avance de vote attention.


--------------------
Musique techno avec MAO (Logic Pro)

des que quelqu'un a du pouvoir il croit détenir la vérité...
Des que quelqu'un a un clavier il A la la vérité.(Forcément)
Go to the top of the page
 
+Quote Post
yponomeute
posté 1 Nov 2011, 10:24
Message #2


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 969
Inscrit : 26 Jan 2011
Lieu : Pollachius virens
Membre no 164 083



Personnellement je fais ça avec http://www.imagemagick.org que j'ai installé avec macports


--------------------
MBP 2017 15" avec clavier pourri et touchbar inutile
Go to the top of the page
 
+Quote Post
hubeert
posté 1 Nov 2011, 10:49
Message #3


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 951
Inscrit : 19 May 2005
Lieu : Chateauneuf du pape
Membre no 39 495



coucou;
Merci beaucoup..

j'arrive pas a installer MacPorts-2.03 je suis sous leopard. sad.gif
xcode n'est pas installe ou a été installé ave UNIX developpement (10.5 +) ou command line support (10.4) deselected.

Je crois aussi que je me suis trompe de forum.. cest plutot dans software --->unix. ?désole pour cette erreur

Ce message a été modifié par hubeert - 1 Nov 2011, 12:25.


--------------------
Musique techno avec MAO (Logic Pro)

des que quelqu'un a du pouvoir il croit détenir la vérité...
Des que quelqu'un a un clavier il A la la vérité.(Forcément)
Go to the top of the page
 
+Quote Post
Jaypee
posté 1 Nov 2011, 13:19
Message #4


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Homebrew est une alternative à MacPorts, le peu que je l'ai utilisé m'a satisafait : Pas de hierarchie parallèle à celle du système, tout reste dans un folder nommé Cellar (la cave).

J-P
Go to the top of the page
 
+Quote Post
yponomeute
posté 1 Nov 2011, 19:22
Message #5


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 969
Inscrit : 26 Jan 2011
Lieu : Pollachius virens
Membre no 164 083



Citation (Jaypee @ 1 Nov 2011, 13:19) *
Homebrew est une alternative à MacPorts, le peu que je l'ai utilisé m'a satisafait : Pas de hierarchie parallèle à celle du système, tout reste dans un folder nommé Cellar (la cave).

J-P


Exact j'utilise homebrew sur mon deuxième mac. J'ai omis de citer cette alternative.


--------------------
MBP 2017 15" avec clavier pourri et touchbar inutile
Go to the top of the page
 
+Quote Post
Guest_EricaL**_*
posté 2 Nov 2011, 18:39
Message #6





Guests






Bonjour,

Citation (hubeert @ 1 Nov 2011, 05:06) *
voici ce que je cherche a faire dans le terminal.
ouvrir un fichier jpeg
le redimensionner hauteur et largeur en pixel.(par exemple 800 *600) ou encore la hauteur et la largeur liée biggrin.gif

C'est possible de faire cela sans rien installer.
Voici la syntaxe de la commande
Code
sips -Z 800 -s formatOptions 95 fichier.jpg
-Z va redimensionner proportionnellement l'image à 800 pixels (la hauteur ou la largeur selon le plus grand).
-s formatOptions est la qualité de l'image, 100 est la meilleure qualité de l'image et le moins compressé, 0 est la moins bonne qualité de l'image et le plus compressé.

Pour une dimension fixe, la syntaxe de la commande sera
Code
sips -z 800 600 -s formatOptions 95 fichier.jpg
le z est en minuscule 800=hauteur, 600=largeur.

Donc pour avoir une taille en octets désirée, il faut vérifier sa taille et compresser le fichier en baissant le taux de qualité si nécessaire.
Le mieux est de créer un script shell, au lieu de vérifier la taille du fichier et taper la commande à chaque fois.

Voici le script
Code
#!/bin/bash
let quality=$1
let dimension=$2
let octets=$3
shift 3
for f in "$@";do
  /usr/bin/sips -Z $dimension -s formatOptions $quality "$f"
  let size=$(/usr/bin/stat -f "%z" "$f")
  if [ $size -ge $octets ]; then
    decreaseQuality=$quality
    while [[ $size -ge $octets && $decreaseQuality -ge 0 ]];do
        /usr/bin/sips -s formatOptions $decreaseQuality "$f" --out "$f"compressTemp
        let size=$(/usr/bin/stat -f "%z" "$f"compressTemp)
        let decreaseQuality=decreaseQuality-10
    done
    /bin/mv -f "$f"compressTemp "$f"
  fi
done

Pour le rendre exécutable:
Code
chmod u+x /le chemin du script shell


Voici la syntaxe dans le terminal pour utiliser le script shell
Code
redimCompressScript.sh 70 800 286000 fichier.jpg fichier2.jpg

redimCompressScript.sh est le chemin du script shell
70 est la qualité
800 est la dimension
286000 sera la taille maximale en octets du fichier compressé
fichier.jpg est le chemin de l'image (on peut mettre une liste de chemins)

Si la taille en octets du fichier est trop grand par rapport à la taille désirée, il créera un fichier temporaire, sinon l'image sera pixelliser, à cause qu'il compressera le fichier plusieurs fois, si nécessaire, le fichier temporaire sera renommé pour remplacer le fichier original dès que le fichier aura atteint la taille désirée ou moins.
Le taux de qualité diminuera de 10 à chaque fois, vous pouvez l'ajuster selon votre choix
Bien attendu que si la qualité descend en bas 0 le script actuel ne pourra plus rien faire pour diminuer la taille en octets du fichier.

Si on veut le faire par lots
Code
cd ~/Desktop/; redimCompressScript.sh 70 800 286000 *.jpg
cet exemple traitera tous les fichiers .jpg du bureau

Ce message a été modifié par EricaL** - 2 Nov 2011, 18:48.
Go to the top of the page
 
+Quote Post
hubeert
posté 2 Nov 2011, 22:48
Message #7


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 951
Inscrit : 19 May 2005
Lieu : Chateauneuf du pape
Membre no 39 495



coucou;
Admiratif..
trop génial ton code..
par contre j'ai deux soucis( du sans doute a ma méconnaissance du terminal et du man)
mon fichier se trouve sur le bureau; je le nomme fichier.jpg
je tape ta commande..

Code
sips -Z 800 -s formatOptions 90 cd ~/Desktop/fichier.jpg

cool en 1 milliardième de seconde mon fichier est aux dimensions mais il pèse 154k je veux donc le diminuer un peu encore mais la il ne trouve plus le le fichier ca vient de quoi? ( j'ai pas encore essayé le script shell; donc j'essaye d'avoir le bon poids par tâtonnement)
que dois je écrire pour qu'il applique a nouveau "formatOptions" sur le fichier déjà manipulé? ou est pas possible.C'est a cause de cd?
en fait je récris la meme commande mais il me dit que cd n'est pas un fichier..je sais pas trop comment faire ou alors faut tout reprendre de zero avec au lieu de formatOptions 90 je mets formatOptions 85.. Merci de tes lumière mais déjà merci infiniment


Merci bien entendu a yponomeute et Jaypee de m'avoir aider aussi
Merci beaucoup

Ce message a été modifié par hubeert - 2 Nov 2011, 23:00.


--------------------
Musique techno avec MAO (Logic Pro)

des que quelqu'un a du pouvoir il croit détenir la vérité...
Des que quelqu'un a un clavier il A la la vérité.(Forcément)
Go to the top of the page
 
+Quote Post
Guest_EricaL**_*
posté 3 Nov 2011, 03:19
Message #8





Guests






Bonjour,
Citation (hubeert @ 2 Nov 2011, 17:48) *
par contre j'ai deux soucis( du sans doute a ma méconnaissance du terminal et du man)

Oui, le problème c'est le cd

Voici les commandes qui fonctionnera sans problèmes :

Code
sips -Z 800 -s formatOptions 90 ~/Desktop/fichier.jpg

Après pour diminuer la taille
Code
sips -s formatOptions 85 ~/Desktop/fichier.jpg

l'option -Z 800 n'est plus nécessaire, car il est déjà redimensionné, mais cela ne causera pas de problème si tu le laisses.

Ce message a été modifié par EricaL** - 3 Nov 2011, 03:19.
Go to the top of the page
 
+Quote Post
hubeert
posté 3 Nov 2011, 08:57
Message #9


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 951
Inscrit : 19 May 2005
Lieu : Chateauneuf du pape
Membre no 39 495



coucou;
merci infiniment.
Ca venait aussi que j'oubliais la séparation entre la commande et le chemin du fichier !! biggrin.gif
Ca marche nickel
J'arrive a le faire pour un dossier et c'est exceptionnellement rapide !!
pour ceux que ca intéresse.

Code
sips -Z 800 -s formatOptions 90 ~/Desktop/monDossier/*.JPG


ou tout autre extension jpeg; JEPG; jpg; JPG..
Ensuite je vais essayer avec ton script shell.
Sais tu comment fonctionne formatOptions pour la compression ? a quoi correspond le ratio 90 par exemple?
par exemple j'ai, une photo de 3,6 mega j'applique ta commande avec 90 elle se retrouve a 156 ko si je lui applique par dessus un 85 ca ne diminue que de 4 ko

Par contre ou apprendre et ou trouver ce genre de commande que tu as donné?

Merci encore.

Ce message a été modifié par hubeert - 3 Nov 2011, 08:58.


--------------------
Musique techno avec MAO (Logic Pro)

des que quelqu'un a du pouvoir il croit détenir la vérité...
Des que quelqu'un a un clavier il A la la vérité.(Forcément)
Go to the top of the page
 
+Quote Post
macuserfr
posté 3 Nov 2011, 12:02
Message #10


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 4 687
Inscrit : 28 Nov 2001
Lieu : Pas loin du grand pic qu'on surnomme Tour Eiffel
Membre no 1 440



Pour la compression, cela va d'une échelle de qualité (par rapport à l'original) entre 0 et 100%. Le problème du rapport entre la compression et la taille du fichier est que l'échelle JPEG (ainsi que d'autres) est basée plutôt dans le rapport entre la qualité de l'original et la qualité du fichier compressé. Et il est très difficile de faire une relation entre la perte concédée (compression) et le nombre d'octets gagné car cela dépend du fichier que tu donne en entrée à ton compresseur.

Moins il y a de détails sur la photo, plus le compresseur arrivera a en faire un petit fichier même avec un grand niveau de qualité (petit niveau de pertes). Plus il y a de détails sur la photo, plus il aura du mal à en faire un petit fichier sans sacrifier la qualité de celui-ci.

Si tu lis l'anglais, une astuce trouvée ici:
Citation
Another reminder: using a JPEG quality level below 50 or above 98 is not a good idea. Saving a JPEG image using quality 99 or 100 is just a waste of disk space. You should use a different file format instead (such as PNG or TIFF). And below quality 50, you lose so much that it would be better to rescale your image and use a lower resolution before trying to compress it further.


En gros, les niveaux optimaux de qualité pour le JPEG varient de 50 à 98, en dessous c'est franchement dégeu et mieux vaut réduire la résolution, au dessus ça n'autorise pas assez de compression et un format de fichier sans perte (TIFF/PNG) produit de plus petits fichiers.

Quant à sips, je découvre ce programme moi-même. D'après google, c'est une commande propre à OS X. Donc pour la connaître il faut bien connaître OS X par des livres ou des gens bien renseignés comme EricaL**.

Ce message a été modifié par macuserfr - 3 Nov 2011, 12:04.


--------------------
Mordu de Mac depuis 1996, avec un Performa 6230CD sous Mac OS 7.5.1. Depuis l'extinction de Steve Jobs, le logiciel libre se fait de plus en plus présent dans ma vie numérique.
Go to the top of the page
 
+Quote Post
Hustleman
posté 3 Nov 2011, 12:22
Message #11


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 951
Inscrit : 30 Sep 2006
Membre no 69 317



salut,

je cherchais également à faire pareil mais sans passer par du code (je suis pas très bon là-dedans lol ^^).

je vais regarder avec pour propositions de logiciels.

Est-il possible de faire la même avec Photoshop??


--------------------
"A journey of a thousand miles begins with a single step". -- Confucius
Macbook Air 1,6GHz, Lion 10.7.5 => El Capitan 10.11.2, Core i5, 4 Go Ram, 128 Go
iPod Touch 1G 8Go, v2.2.1 (écran foutu (grrr)
iPhone 4 Noir 16 Go, v5.0.1 => iPhone 6s, 128 Go, iOS 10.2 => iPhone 12 Pro, 256 Go, iOS 14.4
Still happy to be in the Mac world... "but" not as happy as before... Where are the next evolutions???


"La vie est un long voyage dans lequel il est difficile de naviguer si l'on a pas de cap à suivre" - citation faite il y a 25 secondes!
Go to the top of the page
 
+Quote Post
Guest_EricaL**_*
posté 3 Nov 2011, 13:51
Message #12





Guests






Citation (hubeert @ 3 Nov 2011, 03:57) *
par exemple j'ai, une photo de 3,6 mega j'applique ta commande avec 90 elle se retrouve a 156 ko si je lui applique par dessus un 85 ca ne diminue que de 4 ko

macuserfr à très bien expliquer la compression.

La grande différence de taille est surtout le redimensionnement de l'image (probablement de 2600 pixels ou plus à 800 pixels)

Citation (hubeert @ 3 Nov 2011, 03:57) *
Par contre ou apprendre et ou trouver ce genre de commande que tu as donné?

En général, il faut aller dans les dossiers invisibles (/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin) pour connaître les nouveaux exécutables ajoutés au félin, il faut préalablement connaître la base des commandes shell.

Sinon une recherche sur internet permettra de connaître les utilitaires en ligne de commande par exemple "mac image command" permettra de connaître (sips, ImageMagick, etc.. ).
Les mots shell, bash, command et unix avec les mots OSX ou Mac permets de rechercher ce que l'on souhaite.

sips signifie scriptable image processing system
sips utilise les mêmes frameworks qu’Aperçu

Bonjour,

Citation (Hustleman @ 3 Nov 2011, 07:22) *
Est-il possible de faire la même avec Photoshop??

Vous pouvez créer un droplet dans Photoshop (redimensionnement et compression) sans aucun code
Après, il suffit de glisser des fichiers dans le Finder et de les déposer sur le droplet
Voir Création d’un droplet à partir d’un script


Il y a aussi d'autres options dans Photoshop, voir Traitement des fichiers par lots
Go to the top of the page
 
+Quote Post
hubeert
posté 3 Nov 2011, 14:05
Message #13


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 951
Inscrit : 19 May 2005
Lieu : Chateauneuf du pape
Membre no 39 495



coucou;
merci a tous les intervenants.
J'ai pas réussi a me servir du script shell; mais il faut sans doute un minimum de connaissance. en tout cas ca marche; je découvre le droplet grace a toi aussi merci a macuserfr pour les explications sr la compression..
Et merci surtout d'avoir partager votre savoir..


--------------------
Musique techno avec MAO (Logic Pro)

des que quelqu'un a du pouvoir il croit détenir la vérité...
Des que quelqu'un a un clavier il A la la vérité.(Forcément)
Go to the top of the page
 
+Quote Post
Hustleman
posté 4 Nov 2011, 07:42
Message #14


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 951
Inscrit : 30 Sep 2006
Membre no 69 317



Citation (EricaL** @ 3 Nov 2011, 13:51) *
Citation (Hustleman @ 3 Nov 2011, 07:22) *
Est-il possible de faire la même avec Photoshop??

Vous pouvez créer un droplet dans Photoshop (redimensionnement et compression) sans aucun code
Après, il suffit de glisser des fichiers dans le Finder et de les déposer sur le droplet
Voir Création d’un droplet à partir d’un script


Il y a aussi d'autres options dans Photoshop, voir Traitement des fichiers par lots

merci pour la réponse, je vais regarder ce weekend. ^^


--------------------
"A journey of a thousand miles begins with a single step". -- Confucius
Macbook Air 1,6GHz, Lion 10.7.5 => El Capitan 10.11.2, Core i5, 4 Go Ram, 128 Go
iPod Touch 1G 8Go, v2.2.1 (écran foutu (grrr)
iPhone 4 Noir 16 Go, v5.0.1 => iPhone 6s, 128 Go, iOS 10.2 => iPhone 12 Pro, 256 Go, iOS 14.4
Still happy to be in the Mac world... "but" not as happy as before... Where are the next evolutions???


"La vie est un long voyage dans lequel il est difficile de naviguer si l'on a pas de cap à suivre" - citation faite il y a 25 secondes!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 16th April 2024 - 19:57