| [ Indice General ] | [ Sección Anterior ] | [ Sección Siguiente ] |
NEVEGADORES ADECUADOS PARA EL CORRECTO VISIONADO DE ESTE SITIO |
![]() |
Con la opción [-draw], IM nos permite dibujar formas simples, que denomina "primitives". Ejecutando la orden: convert -list primitive obtendremos un listado de las "primitives" posibles en nuesntra versión de IM.
Pero antes de comenzar a crear estas formas simples con [-draw], es conveniente conocer como crear el "lienzo" sobre el que deberán dibujarse .Para ello disponemos de la opción [-size], ya tratada, a este propósito, en la sección anterior.
Debemos decir que como "lienzo" de [-draw] podemos utilizar también cualquier imagen.
Como se ha ya adelantado, con esta opción podemos crear un "lienzo" o "página", de las dimensiones deseadas, sobre el cual poder dibujar con [-draw]. En realidad lo que hacemos con esta opción es crear una imagen que nos sirva de base.
La sintaxis básica de esta opción es:
-size WxH
Esta opción debe utilizarse con un comando, p.e. , con el comando [convert], que requerirá la especificación de un input y un output.
Como se trata de un proceso de creación de una imagen, el input a utilizar no podrá ser una imagen...... aquí entra en juego el operador [xc:].
Una línea de órdenes con la opción [-size] tendria la siguiente sintaxis básica:
convert -size WxH xc:color output
Vamos a considerar de nuevo el operador [xc:].
En la sección: [XI.-Creación de Lienzos]; vimos como crear distintas clases de lienzos. Todo lo dicho allí seria aplicable aquí, aunque en esta sección vamos a centrarnos en el operador generador de lienzos de color sólido [xc:]
Con este operador creamos un lienzo de color sólido y de unas determinadas dimensiones.
xc:color
El color se definirá según uno de los siguientes formatos:
La lista de colores disponibles puede obtenerse ejecutando el comando: convert -list color
Vamos ahora a ver [-size] y [xc:] en acción:
|
convert -size 100x100 xc:gray canvas.png Hemos creado una imagen canvas.png de 100x100 px y de color gris (gray) con un borde de color rojo y de 5 px de grosor. |
![]() canvas.png |
Vamos a comenzar el trazado de figuras simples con la opción [-draw]
La sintaxis de la opción [-draw] seria del tipo:
convert -draw 'cadena' input output
Como veremos dentros de unos instantes, el contenido del argumento cadena dependerá del tipo de "primitive" que deseemos trazar.
En el caso de no disponer de una imagen previa sobre la que realizar el trazo, es decir, cuando deseemos crear un dibujo "ex-novo", deberemos utilizar la opción [-size], con el operador [xc:] como input en la linea de órdenes:
convert -size WxH xc:color -draw 'cadena' output
Seguidamente, a modo de adelanto, se listan los contenidos del argumento 'cadena' que van a tratarse en esta sección:
| Cadena | "Primitive" | |
| 'point x,y' | Punto | |
| 'line x0,y0 x1,y1' | Línea Recta | |
| 'rectangle x0,y0 x1,y1' | Rectángulo | |
| 'roundRectangle x0,y0 x1,y1 Wc,Hc' | Rectángulo de bordes redondeados. | |
| 'circle x0,y0 x1,y1' | Círculo | |
| 'arc x0,y0 x1,y1 a0,a1' | Arco | |
| 'ellipse x0,y0 Rx,Rya0,a1' | Elipse | |
| 'polyline x0,y0 .... xn,yn ' | Polilinea | |
| 'polygon x0,y0 .... xn,yn ' | Polígono | |
| 'bezier x0,y0 .... xn,yn ' | Curva Bezier | |
| 'text x0,y0 cadena ' | Texto | |
| 'operador x0,y0 W,H archivo ' | Imagen | |
| Las coordenadas x e y se calcularán según se expuso en [-crop]. |
![]() |
-draw 'point x0,y0'
x0,y0= Coordenadas del punto.
|
convert -size 100x100 xc:white -fill red -draw 'point 50,50' punt.png |
![]() |
Con la anterior línea de órdenes se ha creado un "lienzo" de 100x100px,de color blanco sobre el que se ha dibujado un punto rojo en las coordenadas x=50, y=50. Puede verse que se ha utilizado la opción [-fill] para asignar un color al trazo (en este caso, un punto). |
|
-draw 'line x0,y0 x1,y1'
(x0,y0) y (x1,y1), son las coordenadas de cada uno de los extremos de la recta.
Podemos determinar el grosor del trazo mediante la opción [-strokewidth]
Podemos determinar el color del trazo mediante la opción [-stroke]
|
convert -size 100x100 xc:blue \ |
![]() |
Con la anterior línea de órdenes se ha creado un "lienzo" de 100x100px, de color azul sobre el que se ha dibujado una linea recta de color rojo entre las coordenadas x0=10, y0=10.correspondientes al punto del extremo inferior, y las coordenadas x1=90, y1=90, correspondientes al punto del extremo superior. Se ha utilizado las opciónes [-strokewidth] para fijar el grosor del trazo y [-stroke] para asignarle un color. |
|
| Ahora veamos el trazado de varias líneas sobre una imagen preexistente: |
|
|
convert \ |
![]() lineas.png |
Hemos trazado tres lineas sobre una imagen, definiendo el grosor y el color de cada una de ellas con [-strokewidth] y [-stroke], respectivamente. |
|
-draw 'rectangle x0,y0 x1,y1'
El grosor del trazo de los lados se estabecerá con la opción [-strokewidth]
El color del trazo de los lados se establecerá con la opción [-stroke]
El color de relleno de la superficie del rectángulo se fijará con la opción [-fill]
|
convert -size 100x100 xc:white \ |
![]() |
|
convert \ Vemos que si no se especifica un fondo, IM asigna uno por defecto, en este caso, negro. |
![]() |
|
convert -fill transparent \ Aquí hemos establecido un fondo transparente. Al establecerse al principio de la orden y no habiendo otra declaración de [-fill], el valor transparent afecta a los dos rectángulos. |
![]() |
|
convert \ Hemos declarado otra opción [-fill] después de la primera declaración -draw (rectángulo rojo): El fondo del rectángulo rojo será transparente y el del amarillo, verde, |
|
-draw 'roundRectangle x0,y0 x1,y1 Wc,Hc'
Como se puede observar, conserva la sintaxis de [rectangle], con un par de coordenadas más:
El grosor del trazo de los lados se estabecerá con la opción [-strokewidth]
El color del trazo de los lados se establecerá con la opción [-stroke]
El color de relleno de la superficie del rectángulo se fijará con la opción [-fill]
Veamos el comportamiento para distintos valores de Wc y Hc |
||||
|
convert -size 100x100 xc:white -fill yellow -strokewidth 3 -stroke red \ |
||||
![]() Wc=0 Hc=0 |
![]() Wc=10 Hc=10 |
![]() Wc=20 Hc=20 |
![]() Wc=10 Hc=50 |
![]() Wc=50 Hc=10 |
-draw 'circle x0,y0 x1,y1'
|
|
![]() |
De hecho, además del de definir el centro con x0,y0, definimos la longitud del radio con el par (x0,y0,x1,y1), por lo que una forma fácil de calcularlo es hacer coincidir x0 con x1 o bién y0 con y1 Fijándonos en la figura de la izquierda, obtendríamos el mismo resultado con cualquiera de las siguientes dos especificaciones: -draw 'cercle x0,y0 x0,y1' -draw 'cercle x0,y0 x1,y0' De todas formas, el segundo par es siempre las coordenadas de un punto de la circunferencia. |
Veamos algunos ejemplos para distintos valores de x1,y1: |
|||
|
convert -size 100x100 xc:white -fill yellow -strokewidth 3 -stroke red\ |
|||
![]() x1=20 ; y1= 20 |
![]() x1=30 ; y1= 30 |
![]() x1=45 ; y1= 45 |
![]() x1=50 ; y1= 20 |
El grosor del trazos se estabecerá con la opción [-strokewidth]
El color del trazo se establecerá con la opción [-stroke]
El color de relleno de la superficie del círculo se fijará con la opción [-fill]
-draw 'arc x0,y0 x1,y1 a0,a1'
Inscribe un arco elíptico en el interior de un rectángulo.
|
x0,y0 y x1,y1 son las coordenadas que nos delimitan el rectángulo en el que se inscribirá la elipse. a0 y a1 son los ángulos de rotación inicial y final, respectivamente. La figura arco 1 los ángulos inicial y final son, 0º y 360º, por lo que se ha dibujado la elipse entera. En la figura arco 2 el trazo comienza en el ángulo 45º y finaliza en el 270º. |
![]() arco 1 |
![]() arco 2 |
|
convert -size 100x60 xc:white -fill yellow -stroke red \ |
![]() |
|
convert -size 100x60 xc:white -fill yellow -stroke red \ |
![]() |
|
convert -size 100x60 xc:white -fill yellow -stroke red \ |
![]() |
Como se ha visto, pueden usarse las opciones [-strokewidth], [-stroke] y [-fill]
-draw 'ellipse x0,y0 Rx,Ry a0,a1'
|
convert -size 100x100 xc:white -stroke red -fill yellow \ |
![]() |
-draw 'polyline x0,y0 x1,y1.......xn,yn'
El comportamiento de este operador es el trazado de líneas entre los puntos definidos.
|
convert -size 100x100 xc:white -stroke red -fill yellow \ |
![]() |
-draw 'polygon x0,y0 x1,y1.......xn,yn'
El comportamiento de este operador es similar a [polyline], con la diferencia que [polygon] cierra el trazado; esto es, une el primero con el último de los puntos definidos en la línea de órdenes.
|
convert -size 100x100 xc:white -stroke red -fill yellow \ Como podemos ver, se han unido los puntos (2,2) y (80,90) |
![]() |
-draw 'bezier x0,y0 x1,y1.......xn,yn'
Las curvas Bezier se basan en una serie de puntos de control.
Normalmente suelen darse cuatro puntos. El primero y el último de los puntos definidos en la línea de órdenes marcan el inicio y el final de la curva. Los puntos intermedios actuan como "puntos de control" que definen la dirección y cuán "rápido" se desvia la curva hacia los puntos finales.
|
convert -size 600x600 xc:white \ Las líneas rojas y la punteada muestran la polilinea resultante de unir los distintos punto. Podemos ver como los vértices de ésta determinan los senos y picos de la curva, y los ángulos la "amplitud" de los mencionados senos y picos. |
![]() |
Veamos unos ejemplos de curvas. Debajo de cada una de ellas pueden leerse los valores de -draw 'bezier x0,y0x1,y1.......xn,yn' En color negro se visualiza la polilinea resultante de unir los distintos puntos En color rojo, la curva Bezier resultante. |
||
![]() (10,10 30,100 70,0 90,90) |
![]() (20,20 50,100 80,20 70,70) |
![]() (0,0 30,100 50,0 80,100 100,00) |
Para la anotación de imágenes se vio la opción [-annotate], que por el momento sigue siendo la forma mas fácil de anotar una imagen, además de ser la que nos permite un mayor control de la anotación.
Pero también podemos utilizar la opción [-draw] para realizar anotaciones. Veamos como:
-draw 'text x0,y0 "cadena"'
x0,y0= Coordenadas del punto de "arrancada" del texto.
"cadena"= Texto. Si contiene espacios debe entrecomillarse. Si se han utilizado comillas simples en [-draw], como es nuestro caso, se utilizarán comillas dobles para la "cadena", y viceversa.
Con este operador, además de las opciones [-fill], [-stroke]
y [-strokewidth], pueden
utilizarse [-gravity], [-font], [-pointsize]
, [-undercolor] y [-box].
|
convert -size 100x60 xc:skyblue -fill white -stroke black \ |
![]() |
Este operador de [-draw] nos permitirá realizar toda una serie de interesantes operaciones. Se basa en un punto de control y en un método a aplicar:
-draw 'color x,y metodo'
Las coordenadas (x,y) son las del punto de control.
Los métodos posibles son:
| point | Asigna al punto (x,y) el color que hayamos definido en [-fill]. | |
| replace | Lee el color del pixel (x,y) y reemplaza todos los elementos de dicho color presentes en la imagen por el color que hayamos definido en [-fill] | |
| floodfill | Reemplaza el color de todos los elementos de la figura que contienen el punto contros por el color que hayamos definido en [-fill]. | |
| filltoborder | Como floodfill, pero afecta tanbién al borde de la figura. | |
| reset | Como filltoborder |
Veámoslos en acción:
|
convert -size 100x100 xc:white\ Con la anterior línea de órdenes se dibujado un rectángulo y se ha asignado a un punto de este, el punto control (50,50), el color definido en la opción [-fill]: black (negro) |
![]() |
Partiremos de la figura draw-color.png, de 100x100 px |
![]() |
|
convert -fill black -draw 'color 60,30 replace'\ Se ha reeemplazado el color de todos los elementos de la imagen draw-color.png del mismo color que el punto control, (60,30), (amarillo), por el color difinido en la opción [-fill], (negro) |
![]() |
|
convert -fill black -draw 'color 60,30 floodfill'\ Se ha reeemplazado el color del elementos de la imagen draw-color.png que contiene el punto control, (50,20), por el color difinido en la opción [-fill], (negro) |
![]() |
|
convert -fill black -draw 'color 60,30 filltoborder'\ Se ha reeemplazado el color de la imagen draw-color.png, incluyendo el borde, que contiene el punto control, (60,30), por el color difinido en la opción [-fill], (negro) |
![]() |
|
convert -fill black -draw 'color 60,30 replace'\ Similar a la anterior,reemplaza el color de todos los elementos de la imagen draw-color.png que contiene el punto control, (60,30), por el color difinido en la opción [-fill], (negro) |
![]() |
|
Podemos combinar varios de los operadores vistos dentro de una misma opción [-draw]. Son posibles lineas de órdenes como: convert -size 100x100 xc:white -fill none -stroke red -pointsize 14\ |
![]() |
La opción [-draw] soporta numerosas transformaciones, que pueden aplicarse mediante los correspondientes operadores de transformación, a las figuras que se crean con la mencionada opción. Vamos a considerar los siguientes operadores de transformación:
Veamos estos operadores de transformación en acción:
Partiremos de la imagen arts.png ,resultado de aplicar a la imagen arts.jpg (831x622 px),la siguiente línea de órdenes: convert -fill '#A22E2E' -font Nimbus-Sans-Bold -pointsize 86\ ![]() |
XII-17.-Rotación: [rotate]| Índice Sección | | Final Sección |-draw ' rotate ±g ...........' +g: Rotación en el sentido de las agujas del reloj. |
|
|
convert -fill '#A22E2E' -font Nimbus-Sans-Bold -pointsize 86 |
|
| Se han rotado todos los elementos de [-draw] |
|
convert -fill '#A22E2E' -font Nimbus-Sans-Bold -pointsize 86\ | |
![]() |
Se ha rotado solo el elemento text. |
XII-18.-Traslación: [translate]| Índice Sección | | Final Sección |-draw ' translate ±x,±y ...........' +x:Traslada x pixels hacia la derecha. |
|
|
convert -fill '#A22E2E' -font Nimbus-Sans-Bold -pointsize 86 \ |
|
![]() |
Se han trasladado todos los elementos de [-draw] |
|
convert -fill '#A22E2E' -font Nimbus-Sans-Bold -pointsize 86 \ |
|
![]() |
Fijémonos como el elemento text ha acumulado los dos traslados definidos: primero se ha aplicado el traslado (100,150) al rectángulo y al texto para posteriormente, desde esta nueva posición, aplicar un traslado (200,0) al texto. |
XII-19.-Escalado: [scale]| Índice Sección | | Final Sección |-draw ' scale x,y ...........' x:Factor de escalado horizontal. El operador scale afecta a todos los elementos de [-draw] que le siguen, pero no a los que le anteceden, lo que nos permitirá escalar selectivamente uno o varios elementos. |
|
|
convert -fill '#A22E2E' -font Nimbus-Sans-Bold -pointsize 86 \ |
|
![]() |
Se han escalado todos los elementos de [-draw] por los factores 1.5(horizontal) y 0.5(vertical) |
XII-20.-Inclinar: [skewx] [skewy]| Índice Sección | | Final Sección |Inclinar sobre el eje X: -draw ' skewx ±n ...........' Inclinar sobre el eje Y: -draw ' skewy ±n ...........' +n:Grados de la inclinación. A la derecha el el caso de skewx. Hacia abajo, en el caso de skewy. Los operadores skewx y skewx afectan a todos los elementos de [-draw] que le siguen, pero no a los que le anteceden, lo que nos permitirá inclinar selectivamente uno o varios elementos. |
|
|
convert -fill '#A22E2E' -font Nimbus-Sans-Bold -pointsize 86 \ |
|
![]() |
Se han inclinado todos los elementos de [-draw] 30º sobre el eje X . |
|
convert -fill '#A22E2E' -font Nimbus-Sans-Bold -pointsize 86 \ |
|
![]() |
Se han inclinado todos los elementos de [-draw] 30º sobre el eje Y . |
Es posible combinar varias transformaciones en una misma orden de [-draw] .
Debemos tener presente que cada operador afectará a todos los elementos de [-draw] que le siguen, y que los efectos de los operadodes son "acumulativos": cada operador inicia su acción en el estado en que el operador anterior dejó el/los elementos de [-draw] .
|
Veamos un ejemplo: convert -fill '#A22E2E' -font Nimbus-Sans-Bold -pointsize 86\ |
|
|
Las transformaciones realizadas han sido ( por orden y acumulativamente): 1º. Se han trasladado todos los elementos de [-draw] a la posición (100,0). 2º. Se ha inclinado el elemento text un ángulo (hacia abajo) de 30º sobre el eje Y 3º Se ha escalado el elemento text por los factores (1.5,0.5). |
![]() |
Como se ha visto hasta ahora, cuando se utilizan los operadores de transformación en una opción [-draw] , sus acciones afectan a todos los elementos que le siguen, además de acumularse con las acciones de otros operadores de transformación que hayan podido establecerse.
Un modo de "afinar" las transformaciones que deseemos realizar es separar los elementos y sus operadodes de transformación en distintas opciones [-draw] .
Esto nos sirve también para poder asignar valores de [-fill] ; [-stroke].. etc distintos para cada elemento. Veamos un ejemplo:
convert -fill '#A22E2E' -font Nimbus-Sans-Bold -pointsize 86 \ |
|
![]() |
Podemos ver como , mediante la utilización de más de una opción [-draw] se han podido asignar cualidades (color en este caso) y transformaciones para cada elemento en particular. |
Ya se habló de combinar imágenes cuando se trató del comando [composite] . La opción [-draw] nos ofrece otro via para la combinación de imágenes, através de una serie de operadores:
convert -draw 'image operador argumentos superpuesta' input output
La superpuesta es el archivo de imagen que se combinará con el archivo de imagen input, de acuerdo con las acciones definidas por operador argumentos para dar el output.
Los operadores que trataremos son:
Coloca una imagen sobre otra.
convert -draw 'image Over x,y W,H input0' input1 output
Si deseamos colocar la imagen nuvol.png sobre la imagen playa.png, la línea de órdenes seria:
convert -draw 'image Over 10,10 70,50 nuvol.png' playa.png playa-n.png |
||
![]() nuvol.png |
![]() playa.png |
![]() playa-n.png |
| La imagen superpuesta arranca de la coordenada (10,10) y sus dimensiones son de 70x50 px | ||
Inserta una imagen en otra, de modo que no se usará nada de la imagen input que se encuentre bajo el área de la imagen insertada.
convert -draw 'image In x,y W,H input0' input1 output
(x,y); (W,H) e input0 tienen los mismos significados que en [Over]
convert -draw 'image In 10,10 70,50 nuvol.png' playa.png playa-in.png |
||
![]() nuvol.png |
![]() playa.png |
![]() playa-in.png |
Elimina la porción de imagen del input que deberia ser ocupada por la imagen a insertar, pero sin llevar a cabo la inserción.
convert -draw 'image Out x,y W,H input0' input1 output
(x,y); (W,H) y input0 tienen los mismos significados que en [Over]
convert -draw 'image Out 10,10 70,50 nuvol.png' playa.png playa-out.png |
||
![]() nuvol.png |
![]() playa.png |
![]() playa-out.png |
convert -draw 'image Xor x,y W,H input0' input1 output
(x,y); (W,H) y input0 tienen los mismos significados que en [Over]
Este operador aplicará el operador Booleano or a la imagen a superponer (input0) y a la del input1 y colocará el resultado en el output. Si el valor de dos Bits, uno de input0 y otro de input1, son diferentes, el valor de la operación será 1. En caso contrario será 0
convert -draw 'image Xor 10,10 70,50 nuvol.png' playa.png playa-xor.png |
||
![]() nuvol.png |
![]() playa.png |
![]() playa-xor.png |
convert -draw 'image Plus x,y W,H input0' input1 output
(x,y); (W,H) y input0 tienen los mismos significados que en [Over]
Este operador suma el valor del pixel en input1 al valor del pixel en input0 y utiliza el nuevo valor en el output.
Si el nuevo valor es mayor que el soportado por el output, se usará el valor máximo posible.
El valor del canal mate será tratado como opaco.
convert -draw 'image Plus 10,10 70,50 nuvol.png' playa.png playa-plus.png |
||
![]() nuvol.png |
![]() playa.png |
![]() playa-plus.png |
convert -draw 'image Plus x,y W,H input0' input1 output
(x,y); (W,H) y input0 tienen los mismos significados que en [Over]
Similar al operador [Plus], salvo que en este caso se realiza una sustración de valores en lugar de una adición. Si el valor resultante es menos que 0, se tomará = como valor resultante.
convert -draw 'image Minus 10,10 70,50 nuvol.png' playa.png playa-minus.png |
||
![]() nuvol.png |
![]() playa.png |
![]() playa-minus.png |
convert -draw 'image Difference x,y W,H input0' input1 output
(x,y); (W,H) y input0 tienen los mismos significados que en [Over]
Similar al operador [Minus], salvo que en este caso se toma siempre el valor resultante, sin forzar a que no sea negativo.
convert -draw 'image Difference 10,10 70,50 nuvol.png' playa.png playa-difference.png |
||
![]() nuvol.png |
![]() playa.png |
![]() playa-difference.png |
| Este operador es muy útil a la hora de comparar dos imágenes, como hacíamos con el comando [compare]. | ||
convert -draw 'image Difference 0,0 0,0 playa-1.png' playa.png playa-difference-1.png |
||
![]() playa-1.png |
![]() playa.png |
![]() playa-difference-1.png |
convert -draw 'image Multiply x,y W,H input0' input1 output
(x,y); (W,H) y input0 tienen los mismos significados que en [Over]
Este operador multiplica el valor del pixel de input1 por el valor del pixel de input0 para determinar el valor del pixel en output.
Puede usarse este operador para crear sombras descendentes.
convert -draw 'image Difference 10,10 70,50 nuvol.png' playa.png playa-multiply.png |
||
![]() nuvol.png |
![]() playa.png |
![]() playa-multiply.png |
convert -draw 'image Bumpmap x,y W,H input0' input1 output
(x,y); (W,H) y input0 tienen los mismos significados que en [Over]
Este operador toma la imagen input1 y la "sombrea" con input0.
convert -draw 'image Bumpmap 10,10 70,50 nuvol.png' playa.png playa-bumpmap.png |
||
![]() nuvol.png |
![]() playa.png |
![]() playa-bumpmap.png |
Los anteriores operadores de combinación pueden utilizarse con el comando [composite]. Ello se hará mediante la opción [-compose] y se obtendrán resultados similares a los obtenidos con [-draw].
composite -compose operador input0 input1 output
La diferencia en este caso es que no se especifican los argumentos (x,y) y (W,H)
-write output
IM nos permite componer líneas de órdenes complejas, en las cuales se generan outputs intermedios que se convierten en inputs de porteriores procesos de transformación.
La opción [-write] nos permite generar imágenes de estos outputs intermedios de un proceso, lo que puede permitirnos una mayor comprensión y control de este.
Consideremos la siguiente línea de órdenes, utilizada en [XII-22.- Usar de más de una opción [-draw] ]:
convert arts.jpg -fill '#A22E2E' -font Nimbus-Sans-Bold -pointsize 86 \ -draw 'translate 150,0 circle 75,75 90,90' \ -fill green -draw 'skewx 10 rectangle 50,100 100,200'\ -fill yellow -draw 'text 125,200 "H. Arts"' \ arts.png
Podremos visionar los diversos outputs intermedios de este proceso "colocando" opciones [-write] al final de cada uno de los procesos intermedios que los generan, pero debemos tener la precaución de definir el input del proceso, arts.jpg en este caso, al principio de la línea de órdenes:
convert arts.jpg -fill '#A22E2E' -font Nimbus-Sans-Bold -pointsize 86 \ -draw 'translate 150,0 circle 75,75 90,90' -write output-1.png \ -fill green -draw 'skewx 10 rectangle 50,100 100,200' -write output-2.png \ -fill yellow -draw ' skewy 25 text 125,200 "H. Arts"' \ arts.png
![]() arts.jpg |
![]() output-1.png |
![]() output-2.png |
![]() arts.png |
| [ 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 |
![]() |