| [ Indice General ] | [ Sección Anterior ] | [ Sección Siguiente ] |
NEVEGADORES ADECUADOS PARA EL CORRECTO VISIONADO DE ESTE SITIO |
![]() |
Con dicha opción podremos rotar imágenes , a la derecha o a la izquierda, el número de grados que especifiquemos.
convert -rotate {±}g input output
El argumento g es el número de grados sexagesimales que deseamos rotar la imagen. Dependiendo del signo, positivo o negativo, la rotación se realizará en un sentido u otro:
También pueden utilizarse los signos < y > con el siguiente significado (Siendo W la anchura de la imagen y H su altura):
Cuando se utilicen los signos '<' y '>', debe entrecomillarse todo el argumento de la opción.
Cuando se utilicen ángulos de rotación que no sean múltiplos de 90° se aumentará el tamaño del output a base de zonas "vacias" en el lienzo, sobre todo en las esquinas del mismo. Dichos "huecos" pueden rellenarse de color mediante la opción [-background], precediendo a la opción [-rotate].
convert -background '#ff0000' -rotate -45 rotar.jpg rotar.png
Veamos [-rotate] en acción:
| Vamos a aplicar la acción de rotar sobre la imagen rotar.jpg, de 200x150 px. | ![]() rotar.jpg |
|
convert -rotate +45 rotar.jpg rotar-1.png La rotación se ha realizado 45° a la derecha ( signo positivo). Obsérvense los espacios vacios en las esquinas. |
![]() rotar-1.png |
|
convert -background red -rotate -45 rotar.jpg rotar-2.png En este caso se ha realizado el giro de 45° a la izquierda (signo negativo) y, además de han rellenado de color rojo, con la opción [-background], los huecos de las esquinas. |
![]() rotar-2.png |
|
convert -background red -rotate '<-30' rotar.jpg rotar-3.png Aquí se ha utilizado el signo '<' (solo realizar la rotación si la anchura de la imagen es menor que su altura). Como las dimensiones de la imagen a rotar son 200x150 px, la rotación no se ha realizado. |
![]() rotar-3.png |
Con esta opción podemos "rodar" una imagen, verticalmente u horizontalmente.
La rotación vertical implica el tomar un rectángulo de la parte superior de la imagen y moverlo hacia la parte inferior. La rotación horizontal implica tomar un rectángulo de imagen de su lado izquierdo y moverlo hacia su lado derecho.
convert -roll ±x±y
Para rodar solo horizontalmente, no hace falta especificar el valor vertical (y). Para "enrollar" solo verticalmente, especificar como 0 el valor horizontal (x).
| Partiendo de la imagen colon.png veamos los resultados con distintos valores de ±x±y | ||||
![]() colon.png |
![]() +200+300 |
![]() +200 |
![]() -200+300 |
![]() +0-300 |
Con esta opción el output resultane será la imagen especular-vertical del input.
convert -flip input output
![]() grun.jpg |
convert -flip gun.jpg grun-flip.png |
![]() grun-flip.png |
Con esta opción el output resultante será la imagen especular-horizontal del input.
convert -flop input output
![]() grun.jpg |
convert -flop gun.jpg grun-flop.png |
![]() grun-flop.png |
Estas dos opciones son equivalentes a:
-transpose = -flip -rotate 90
-transverse = -flop -rotate 90
Con un sencillo ejemplo se verá claramente la acción de estas dos opciones. Partiendo de la figura Origen.png, veamos el resultado de aplicar cada una de las opciones. convert Origen.png -transpose\ convert Origen.png -transverse\ |
![]() |
Esta opción nos permite inclinar las imágenes, vertical y/u horizontalmente, un determinado ángulo, modificándose los ángulos del paralelogramo del lienzo.
En esta operación, como con la opción [-rotate], se incrementa el tamaño de la imagen resultante.
convert -shear ±Xx±Y input output
Cuando solo se especifica un número, sin el operador x, la modificación se aplica tanto al eje X como al eje Y.
Puede operarse con varias opciones [-shear] en una misma linea de órdenes.
Los grados Y se miden con respecto al eje X y los grados X con respecto al eje Y.
Podrá observarse que la inclinación X no afecta a la altura de las imágenes y la inclinación Y no afecta a su anchura.
Como sucedia con la opción [-rotate], frecuentemente se generan espacios en blanco que pueden rellenarse de color con la opción [-background].
| Partimos de la imagen joc.jpg | ||||||
|
convert -background blue -shear 20 joc.jpg joc-1.png convert -background blue -shear 20x0 joc.jpg joc-2.png convert -background blue -shear 0x50 joc.jpg joc-3.png convert -background blue -shear 20x50 joc.jpg joc-4.png convert -background blue -shear 20x0 -shear 0x50 joc.jpg joc-5.png convert -background blue -shear 0x50 -shear 20x0 joc.jpg joc-6.png |
||||||
![]() joc.jpg |
![]() joc-1.png |
![]() joc-2.png |
![]() joc-3.png |
![]() joc-4.png |
![]() joc-5.png |
![]() joc-6.png |
Debe advertirse que la opción [-shear] no es un buén medio de rotar imágenes: Para ello se dispone de [-rotate]
Como [-shear], esta opción provoca un "desplazamiento lineal" en las imágenes. Sin embargo, [-wave], desplaza solo columnas de pixels verticalmente, de acuerdo con una función de onda.
convert -wave A input output
convert -wave AxL input output
| Partimos de la imagen golfos.jpg, de 100x68 px | ||||
|
convert -wave 10x64 golfos.jpg golfos-1.png |
||||
| Ajustando los argumentos de forma
que la Longitus de onda sea el doble de la anchura de la imagen, esta
será colocada en un arco:
convert -background Blue -wave 20x200 golfos.jpg golfos-2.png |
||||
| Si repetimos la anterior linea de
órdenes, pero con el valor de la amplitud negativo, podremos ver como
se invierte el arco:
convert -background Blue -wave -20x200 golfos.jpg golfos-3.png |
||||
| También podemos combinar esta opción
con otras de distorsión, como puede ser [-rotate]
:
convert -background Blue -rotate -90 -wave -20x200 -rotate +90 golfos.jpg golfos-4.png |
||||
![]() golfos.jpg |
![]() golfos-1.png |
![]() golfos-2.png |
![]() golfos-3.png |
![]() golfos-4.png |
La sintaxis de esta opcion es:
convert -implode {±}n
Con la opción [-implode], dependiendo del signo del argumento (n), podemos conseguir dos tipos de distorsión:
Implosión:El efecto obtenido puede compararse al que se obtendria si la imagen fuese siendo succionada por un torbellino imaginario situado en su centro. Este efecto lo conseguimos con argumentos de signo positivo.
Explosión: Efecto contrario al anterior: El "torbellino" imaginario expulsa los pixels de la imagen desde el centro hacia el exterior.
Veamos ambos efectos de [-implode]:
Como se ha comentado más arriba, el efecto de implosión de la imagen se obtine con valores positivos del argumento.
Debe advertirse sobre la conveniencia de utilizar valores de n menores de 1.0. Con valores superiores a 1.0 la mayor parte de los pixels son "engullidos"..... desapareciendo. Veamos unos ejemplos:
Partimos de la imagen macba.png. Veamos el resultado para distintos valores de n: |
||
![]() macba.png |
![]() n=0.3 |
![]() n=0.5 |
![]() n=0.7 |
![]() n=1.0 |
![]() n=1.5 |
Observemos ahora estas dos lineas de órdenes, con sus resultados: convert -border 20x20 -bordercolor blue -implode 0.7\ convert -border 20x20 -bordercolor none -implode 0.7\ |
![]() macba-b.png |
![]() macba-c.png |
Se han creado unos bordes antes de implosionar la imagen, (el primero de color y el segundo, transparente) para, tras la implosión, recortarlos. |
||
Este efecto, como antes se ha comentado, se obtiene con valores negativos del argumento n. Veamos unos ejemplos:
| Partiendo también de la imagen macba.png, veamos el resultado para los distintos valores de n: | |||
![]() n= -0.6 |
![]() n= -1 |
![]() n= -2 |
![]() n= -3 |
En [hh,ericsur] podemos ver ejemplos del uso de la opción [-implode]
Esta opción actua como lo haria una amasadora: arremolida la imagen alrededor de un círculo el número de grados que especifiquemos en el argumento g.
convert -swirl ±g input output
Dependiendo del signo de g, el giro del "remolino" será:
| Partiendo también de la imagen macba.png, veamos el resultado para los distintos valores de g: | |||
![]() g= 90 |
![]() g= -90 |
![]() g= 180 |
![]() g= -180 |
Hasta este momento hemos visto como las distintas opciones de distorsión actuaban sobre la totalidad de la imagen.
Mediante la opción [-region] podemos limitar a una determinada área de la imagen la acción de la distorsión.
Veamos un ejemplo:
![]() |
|
convert \ |
![]() |
En una región pueden ejecutarse varias distorsiones
![]() |
convert -region 75x50+50+50 \ |
![]() |
Obsérvese que sobre la primera rotación se ha aplicado [-implode] y sobre este conjunto se ha aplicado la segunda rotación, con fondo rosado (pink).
Mediante esta opción configuramos el método de interpolación. Determina el color adecuado del pixel a partir de los colores de los pixels de su alrededor.
-interpolate metodo
Mediante la orden convert -list interpolate obtendremos la relación de los métodos de interpolación disponibles.
Es una opción importante cuando se utilizan opciones de distorsión de imágenes, como son [-distort], [-implode], etc..
Los métodos de interpolación son:
| integer | Utiliza el valor del pixel superior-izquierdo. | |
| nearest-neighbor | Utiliza el valor del pixel vecino más cercano. | |
| average | Utiliza el valor propedio de los cuatro pixels mas cercanos. | |
| bilinear | Utiliza una doble interpolación lineal de pixels. Es el método por defecto. | |
| mesh | Divide el área a interpolar en dos triángulos.Es una variante de bilinear | |
| bicubic | Utiliza una función bicúbica de los 16 pixels que rodean el punto. | |
| spline | Utiliza curvas "spline". ( Los colores serán borrosos) | |
| filter | Utiliza los parámetros de la opción [-filter] |
En la mayoria de los casos, la mejor opción será la de utilizar el método bilinear, que es el utilizado por defecto por IM.
Mediante esta opción podemos especificar el contenido de los pixels virtuales que puedan crearse durante el proceso de transformación de una imagen. Con ella definimos que fuente de color deberá utilizarse en la "creación" de esos nuevos pixels.
Generalmente el color de los pixels virtuales se toma a partir de la imagen original: [-virtual-pixel] nos posibilita especificar un color de fondo concreto.
-virtual-pixel metodo
El argumento, metodo, será la via mediante la cual fijemos las caracterésticas de los nuevos pixels.
Podemos obtener los posibles valores de metodo ejecutando el comando convert -list virtual-pixel :
| background | El área alrededor de la imagen será el color de fondo de la propia imagen | |
| black | El área alrededor de la imagen será de color negro. | |
| constant | Será usado el color de fondo de la imagen.. | |
| edge | Se usará como patrón un pixel del margen de la imagen.. | |
| gray | El área alrededor de la imagen será de color gris. | |
| mirror | La propia imagen será "reflejada" alrededor de los bordes. | |
| random | Como patrón se eligirá aleatoriamente un pixel de la imagen. | |
| tile | Se creará un "enbaldosado" con la propia imagen.. | |
| transparent | El área alrededor de la imagen será transparente. | |
| white | El área alrededor de la imagen será de color blanco. | |
Esta opción tiene su principal aplicación cuando se utiliza junto con las opciones de distorsión de imágenes, como [-implode], [-distort],etc.. aunque también afecta a cualquier otra operación que de lugar a la creación de nuevos pixels fuera de la imagen original.
Veamos unos ejemplos del comportamiento de varios métodos, M, con una misma linea de órdenes:
|
convert -bordercolor white -border 3 -virtual-pixel M \ |
||
![]() input |
![]() output; M=Edge |
![]() output; M=Gray |
![]() output; M=Random |
![]() output; M=Mirror |
![]() output; M=Tile |
| [ Indice ] | [ Inicio Sección] | [ Sección Anterior ] | [ Sección Siguiente ] |
Licencia: "ImageMagick: Manual en español". By Antoni Serra Devecchi is licensed under a Creative Commons Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 España License.
NEVEGADORES ADECUADOS PARA EL CORRECTO VISIONADO DE ESTE SITIO |
![]() |