Suite à un billet précédent, je propose donc ce petit test pour permettre de pouvoir réduire une image!
Tout d'abord il nous faut convert (fournit dans le paquet imagemagick d'ubuntu) et imagesize (fournit quand à lui dans le paquet libimagesize-perl)
apt-get install libimage-size-perl imagemagick
Supposons que j'ai une image Capture-1.png dont j'obtiens les dimensions par
root@bremko:/home/david# imgsize Desktop/Capture-1.png
width="1280" height="800"
L'option -r de imgsize (cf. man imgsize) me permet de me débarasser des witdh et heights
root@bremko#imgsize -r Desktop/Capture-1.png
1280 800
La page man de convert me permet de savoir que pour réduire une image il suffit d'utiliser l'option resize
convert -resize [nouveau_width]x[nouveau_height] [image_source] [image_finale]
Donc pour mon exemple, en utilsant cut pour récupérer à la fois width et height depuis imgsize, ainsi que expr je peux par exemple faire un petit script comme celui-ci pour réduire mon image par exemple d'un rapport au quart
#!/bin/sh
image="/home/david/Desktop/Capture-1.png"
rapport=4
width=$(imgsize -r ${image} |cut -d ' ' -f 1)
height=$(imgsize -r ${image} |cut -d ' ' -f 2)
convert -resize $(expr ${width} / ${rapport})x$(expr ${height} / ${rapport}) ${image} ${image}
Suite à l'exécution de ce script par sh script.sh, imgsize me confirme bien les nouvelles dimensions qui sont donc
root@bremko:/home/david# imgsize Desktop/Capture-1.png
width="320" height="200"