En ImageMagick podemos usar once puntos de referencia a la hora de alinear elementos, hacer recortes, ajustar o cualquier otra acción que implique el uso de unas coordenadas. Estos son:
None -> Sin punto de gravedad. Toma como referencia orientativa la esquina superior izquierda a la hora de hacer un mapa de bits, pero como los dibujos vectoriales no tienen punto de gravedad es mejor usar esta opción cuando vamos a hacer una imagen vectorial.
Center-> El centro. El punto resultante de calcular $anchura/2 x $altura/2
East-> Centro derecha. El punto resultante de calcular $anchura x $altura/2
Forget -> No hace uso del parámetro gravity, por lo que toma como referencia 0x0.
NorthEast -> Esquina superior derecha. El punto $anchura x 0
North -> Centro superior. El punto $anchura/2 x 0
NorthWest -> Esquina superior izquierda. El punto 0 x 0
SouthEast -> Esquina inferior derecha. El punto $anchura x $altura
South -> Centro inferior. El punto $anchura/2 x $altura
SouthWest -> Esquina inferir izquierda. El punto $anchura x 0
West -> Centro izquiera. El punto $altura/2 x 0
Listar los puntos de gravedad
Para listar los puntos de gravedad, como con cualquier otro listado en ImageMagick, podemos usar el parámetro -list. En este caso:
convert -list gravity
None
Center
East
Forget
NorthEast
North
NorthWest
SouthEast
South
SouthWest
West
Ejemplo de uso
Vamos a ver un script que nos muestre cómo queda un cuadro pequeño sobre otro más grande, para que se vea bien, montado con composite e indicándole las distintas posibilidades de punto de gravedad de ImageMagick:
#!/bin/bash
convert -size 500x500 xc:red fondorojo.png
convert -size 50x50 xc:black cuadronegro.png
for i in $(convert -list gravity)
do
composite cuadronegro.png -gravity $i fondorojo.png $i.png
done
Que nos genera:
None.png
Center.png
East.png
Forget.png
NorthEast.png
North.png
NorthWest.png
SouthEast.png
South.png
SouthWest.png
West.png