El parámetro -crop de ImageMagick (I): ajustar imágenes

11 Agosto 2018 by 0 Comment Multimedia 4350 Views
Valora este artículo
(0 votos)

Cada vez las cámaras fotografían con mayor resolución, incluso con resoluciones mayores a las pantallas en las que vemos esa imagen. Y esto nos da mucho juego para poder manipular las imágenes haciendo recortes que nos permitan, entre otras cosas:


Ajustar la fotografía a aquello que queremos mostrar, quitando todo lo que sobra alrededor 

Veamos esta fotografía de la escultura de Miguel Servet en la antigua facultad de medicina de Zaragoza:

servet.jpg

Si queremos mostrar únicamente la escultura, sobra imagen por todos los lados. Avuelapluma y sin ajustar demasiado (estamos hablando de ImageMagick, no de armonía, ni de composición), pienso que podemos quitar 1/7 por arriba y por abajo y alrededor de 1/5 a izquierda y derecha, así que, como ya sabemos cómo preguntarle a ImageMagick el tamaño de las imágenes, voy a hacer esos recortes:

#!/bin/bash
origen="servet.jpg"
destino="servet_recortado.jpg"
let anchura=$(identify -format %w $origen) 
let altura=$(identify -format %h $origen)
let anchurarecorte=$anchura/5
let alturarecorte=$altura/7
let nuevaanchura=$anchurarecorte*3
let nuevaaltura=$alturarecorte*5
recorte=$nuevaanchura"x"$nuevaaltura"+"$anchurarecorte"+"$alturarecorte
convert $origen -crop $recorte $destino

Veamos lo que he hecho en este script: 

Primero, indicarle que estamos escribiendo un script en Bash con #!/bin/bash
E indicarle cual es la imagen que vamos a procesar y cómo queremos que se guarde la imagen modificada, Aunque esta sea una operación sencilla, siempre viene bien ser ordenados y definir primero las variables con las que vamos a trabajar y acostumbrarnos a nombrar con variables. Poco a poco iremos haciendo más complejos los scripts y cuando empecemos a hacer animaciones con ImageMagick viene muy bien ser estructurados.
El siguiente paso ha sido preguntarle a ImageMagick la altura y la anchura de la imagen para poder calcular dos cosas: Las partes a recortar, tanto horizontal como verticalmente (ese 1/7 y 1/5 que hemos dicho antes) y el tamaño de la imagen resultante. En este caso, como le quitábamos 1/7 por arriba y por abajo serían 7-1-1=5 -> 5/7 de la imagen y como le recortamos 1/5 a izquierda y otro 1/5 a la derecha, nos quedaría 5-1-1=3 -> 3/5 partes de la imagen. 
Una variable que contiene primero la anchura expresada en anchuraxaltura y después el recorte que le hacemos por arriba y por la izquiera expresado en +recortehorizontal+recortevertical.
Cuando tenemos todos los valores calculados, ejecutamos la instrucción diciéndole a convert que recorte con -crop y cómo queremos que sea el recorte. 

Al final, la imagen resultante ha quedado así:

server_recortado.jpg

Información adicional

  • Nivel de dificultad: Bajo
  • ¿Tutorial sacado de otra web/foro?: No

¡Atención! Este sitio usa cookies y tecnologías similares.

Si no cambia la configuración de su navegador, usted acepta su uso. Saber más

Acepto

Vea nuestra política de cookies y enlaces de interés aquí