Recortar una imagen con el operador -crop de ImageMagick

Para recortar el tamaño de una imagen en ImageMagick podemos cambiar el tamaño del lienzo con -extent o podemos recortar la imagen con -crop. En este artículo veremos cómo operar con este modificador.

El operador -crop necesita como parámetro, una geometría de ImageMagic, es decir, le tenemos que indicar un tamaño y una posición en el siguiente formato:

${anchura}x${altura}+${posicion_horizontal}+${posicion_vertical}

Por defecto, la posición horizontal y la posición vertical la tomará desde el punto 0,0, es decir, desde la esquina superior izquierda, pero este punto de referencia lo podemos modificar cambiando el punto de gravedad con el parámetro -gravity. Si quisiéramos recortar la parte central de una imagen, lo podríamos hacer extrayendo la altura y la anchura de la imagen original y calculando con esos datos y el recorte que queremos hacer, la posición a recortar. O lo podemos hacer más fácilmente usando el operador -gravity:

-gravity Center

Para ver esta explicación más clara, vamos a partir de esta imagen y a hacer varios recortes:

Recorte desde la esquina superior izquierda

Para hacer un recorte desde la esquina superior izquierda, como es el punto de referencia que tiene crop, le indicaremos:

convert teatrodelmercado.jpg -crop 800x445+0+0 teatrodelmercado_superior_izquierda.jpg

Que nos devuelve:

convert teatrodelmercado.jpg -crop 800x445+0+0 teatrodelmercado_superior_izquierda.jpg

También podríamos indicarle no exactamente la esquina superior izquierda sino tomando esa esquina como referencia, un desplazamiento. Por ejemplo 300 píxeles a la derecha y 150 hacia abajo:

convert teatrodelmercado.jpg -crop 800x445+300+150 teatrodelmercado_superior_izquierda_300_150.jpg 

convert teatrodelmercado.jpg -crop 800x445+300+150 teatrodelmercado_superior_izquierda_300_150.jpg

Usando -gravity

Si queremos que el punto de referencia sea el centro horizontal desde el borde superior, usaremos North en el punto de gravedad:

convert teatrodelmercado.jpg -gravity North -crop 800x445+0+0 teatrodelmercado_superior_centrado.jpg 

convert teatrodelmercado.jpg -gravity North -crop 800x445+0+0 teatrodelmercado_superior_centrado.jpg

La esquina superior derecha es NorthEast en -gravity:

convert teatrodelmercado.jpg -gravity NorthEast -crop 800x445+0+0 teatrodelmercado_superior_derecha.jpg 

convert teatrodelmercado.jpg -gravity NorthEast -crop 800x445+0+0 teatrodelmercado_superior_derecha.jpg

El resto de los puntos de referencia son (siguiendo las agujas del reloj):

  • East: centro vertical, borde derecho.
  • SouthEast: esquina inferior derecha.
  • South: centro horizontal, borde inferior.
  • SouthWest: esquina inferior izquierda.
  • West: centro vertical, borde izquierdo.
  • Center: centro vertical y horizontal.

Vamos a hacer el recorte en el centro para ver también cómo podemos trabajar con valores negativos. Recorte tomando como referencia el centro:

convert teatrodelmercado.jpg -gravity Center -crop 800x445+0+0 teatrodelmercado_centro.jpg

convert teatrodelmercado.jpg -gravity Center -crop 800x445+0+0 teatrodelmercado_centro.jpg

Hemos visto que podemos indicar un desplazamiento hacia la derecha y hacia abajo. Pero también podemos desplazar el recorte hacia la izquierda y hacia arriba. Para ello, indicaremos valores negativos desde el punto de referencia. En este caso le vamos a decir que recorte 200 píxeles a la izquierda y 300 hacia arriba desde el centro:

convert teatrodelmercado.jpg -gravity Center -crop 800x445-200-300 teatrodelmercado_centro-200-300.jpg 

convert teatrodelmercado.jpg -gravity Center -crop 800x445-200-300 teatrodelmercado_centro-200-300.jpg

O hacia la izquierda y hacia abajo, con el primer valor en positivo y el segundo en negativo:

convert teatrodelmercado.jpg -gravity Center -crop 800x445-200+300 teatrodelmercado_centro-200_300.jpg 

convert teatrodelmercado.jpg -gravity Center -crop 800x445-200+300 teatrodelmercado_centro-200_300.jpg

Y podríamos seguir haciendo combinaciones ad infinitum​ con valores positivos y negativos y los distintos puntos de gravedad. Pero con los ejemplos que hemos visto en este artículo nos podemos hacer una idea del funcionamiento de -crop y cómo combinarlo con -gravity. Ahora ya es tarea de cada cual aplicarlos según le convenga.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.