Hace ya un buen tiempo en mi blog anterior había hecho algunos scripts para reducir de tamaño las imágenes que subía en Flickr o en ese blog.
Como ese blog pasó a la historia junto con los artículos que tenía, las dos entradas relacionadas con lo mismo desaparecieron. Hace como una semana me preguntaron el porqué no escribo tan seguido y comenté que principalmente porque a veces no encuentro sobre qué escribir.
Y de ahí surgió el comentario sobre este tema y le mencioné que ya había resuelto ese detalle, aunque ahora mismo ya no use dichos scripts.
Pues bien y después de rebuscar entre las cosas que tenía almacenadas por fin encontré no uno, sino varios scripts sobre el tema. Pondré los primeros que usaba y finalmente el que para mi gusto fue el que finalmente usé masivamente debido a que estaba más completo.
Primeros scripts
El primero le puse el nombre de «achicar» y es:
#!/bin/bash # # Pequeño script que cambia la resolución de la imagenes (con extension PNG) al 27% del tamaño original. # Realizado por: Hbautista, [email protected] for file in $( ls *.JPG ); do convert $file -resize 27% foto_$file done echo “Listo!
Como verán es simple y tiene la limitante que sólo funciona con fotos que tengan la extensión jpg en mayúsculas, debido a que cuando pasaba las fotos de mi cámara a la computadora las tenía así.
Las fotos resultantes quedaban en el mismo directorio al igual que las originales, quedando las «nuevas» con «foto_» al inicio del nombre de cada archivo.
En el caso de pantallazos y otros archivos o fotos que tenían la extensión .png lo modifiqué resultando el script llamado «reducir»:
#!/bin/bash # # Pequeño script que cambia la resolución de la imagenes (con extension PNG) al 50% del tamaño original. # Realizado por: Hbautista, [email protected] for file in $( ls *.png ); do convert $file -resize 50% foto_$file done echo “Listo!
Luego de eso y buscando un poco más usé durante un tiempo este otro que lo llamé «quitar-calidad»:
#/usr/bin mkdir pt for N in *; do convert -compress jpeg -quality 44 -enhance -font Bookman-DemiItalic -fill white -pointsize 14 -draw "text 680,500 'hbautista'" $N pt/$N; done ls -l pt/
Aquí ya no importaba la extensión y a diferencia de los dos primeros, en este caso lo que hacía era reducir la calidad al 44% de la imagen original, crear un subdirectorio dentro del directorio en donde se ejecutase el script y añadir la marca de agua «hbautista.usoli.org» en las fotografías y poniendo las reducidas y con la marca de agua en el subdirectorio «pt».
Script final
Luego hice una mezcla de los primeros scripts con el último para que reduciera el tamaño y además le pusiera la marca de agua, pero digamos que era desperdicio de código porque nada más junte los tres scripts. Finalmente éste fue el script final que a mi gusto estaba bastante funcional, le puse el nombre de «blogfoto»:
#!/bin/bash # blogfoto # Pequeño script que cambia la resolución de la imagenes del tamaño original a 800*600. Usa ImageMagick # Además de reducir la calidad de la imagen resultante. # Realizado por: Hbautista, [email protected] # http://blog.hbautista.com/linux/redimencionar-imagenes-con-imagemagick/ # Primero nos aseguramos que la extensión esté en minúsculas y creamos fotoblog rename 's/.JPG/.jpg/' *.JPG mkdir fotoblog #Empezamos el ciclo con las fotos de extensión jpg para reducirlo a 800*600. #Además de poner las fotos dentro de fotoblog for file in $( ls *.jpg ); do convert -size 2048x1536 $file -thumbnail 800x600 fotoblog/foto_$file done echo “Listo! # Ahora procedemos a comprimir más las imágenes dentro de fotoblog cd fotoblog for N in *; do convert -compress jpeg -quality 55 -enhance -font Bookman-DemiItalic -fill white -pointsize 14 -draw "text 680,500 'hbautista'" $N $N; done echo "Hemos terminado!"
Ahora bien, primeramente usando el comando rename pasamos de mayúsculas a minúsculas las extensiones, si es que están así. Creamos el directorio «fotoblog» y hacemos que las fotos sean reducidas a un tamaño de 800×600 y queden con el nombre de foto_loquesea.jpg dentro de ese directorio.
Una vez que haya terminado ese proceso que depende de cuántas fotografías estén dentro del directorio lo que hace es que accede al directorio fotoblog y ahí procede a añadirle la marca de agua.
¿Cómo usar el script?
Copiar el contenido del script final (blogfoto) en tu editor de texto favorito y adecuarlo a tus necesidades, es decir cambiar el nombre del subdirectorio, el tipo de letra o cambiar el texto de la marca de agua y guardarlo con el nombre de «loquesea.sh» para este ejemplo lo dejaré con el nombre original blogfoto.sh y lo dejaré en el directorio raíz de mi /home para luego como root copiarlo a /usr/local/bin y darle los respectivos permisos de ejecución:
root@luke:/home/hbautista# cp blogfoto.sh /usr/local/bin/ root@luke:/home/hbautista# chmod +x /usr/local/bin/blogfoto.sh root@luke:/home/hbautista#
Luego con tu usuario normal ubicarte en el directorio que tiene las fotos y ejecutar el script:
hbautista@luke:~$ cd Imágenes/Taller_Foto/ hbautista@luke:~/Imágenes/Taller_Foto$ blogfoto.sh Can't rename *.JPG *.jpg: No existe el fichero o el directorio “Listo! Hemos terminado! hbautista@luke:~/Imágenes/Taller_Foto$
El resultado se ve como esto:
Espero que les sirva
Enlaces:
Jugando con Imagemagick
gracias por la informacion pero me gustaria que profundices un poco mas o video en la que se pueda ver un poco mas claro estoy aprendiendo un poco son cosas importantes ,son herramientas que utilizarias en muchas ocaciones