sábado, 27 de diciembre de 2008

Extrayendo imágenes de documentos PDF

Una forma rápida y sencilla de sacar una imagen de un archivo PDF es tomar una captura de pantalla y recortarla con algún editor de imagen como GIMP. Este procedimiento es muy sencillo, pero no siempre ofrece la mejor calidad ni toda la resolución original de la imágen.

Hay varios programas que permiten extraer las imágenes de un fichero PDF. Voy a comentar uno de ellos: PDF_to_JPG, aunque si lo que buscas es un programa orientado a un propósito más o menos general para un usuario intermedio, te recomiendo que mires el tercer párrafo por el final de esta entrada, donde hablo de PDF Image Extractor.

PDF_to_JPG tiene dos ventajas muy destacables: es libre y extrae las imágenes sin modificarlas (los ficheros PDF suelen contiener las imágenes comprimidas con JPEG, y no es bueno comprimir una imágen muchas veces). Su principal pega es que es un programa reciente y todavía tiene carencias y fallos (hay ficheros PDF que fallan). Este programa tiene una versión compilada para Windows, aunque también puede usarse en Linux si se compila el código fuente.

Su uso es a través de consola (no dispone de una interfaz gráfica), aunque existen procedimientos para facilitar su uso sin necesidad de teclear comandos en plan MS-DOS.

Para usar el programa es necesario descargar el programa y descomprimirlo en una carpeta. Si se usa GNU/Linux habrá que compilar el código fuente (creo que se puede compilar con gcc, más abajo lo explico).

Una vez con una carpeta con los ficheros del programa, se puede empezar a usarle mediante consola, pero es más práctico usar otro procedimiento: usar guiones (scripts) que contengan las instrucciones que se meten por consola. En Windows son los ficheros BAT. Estos ficheros son fáciles de crear, modificar y usar, ya que son ficheros de texto que permiten ejecutar comandos de consola con solo hacerles doble clic, y se pueden modificar con el Bloc de notas. En Linux es muy similar, son ficheros SH y con activarles el permiso de ejecución ya se pueden usar.

Para crear el fichero BAT basta crear en la misma carpeta del programa un fichero de texto nuevo y llamarle "p2j.bat" (o cualquier nombre terminado en .bat). Una vez con este fichero, se pulsa con el botón derecho y se pulsa en editar. Se abrirá el Bloc de notas, en el hay que introducir p2j mis_fotos.pdf /NOASK y se cierra guardando los cambios (por supuesto, cambia mis_fotos.pdf por el nombre de fichero PDF que tengas). Ahora hay que copiar el fichero PDF a la carpeta donde esté el programa y el fichero BAT. Hecho esto haz doble clic sobre el fichero BAT, y el programa empezará a sacar imágenes. Las imágenes van apareciendo en una carpeta nueva que crea el programa llamada "PDF_to_JPG_files". Una vez acabado el proceso, es muy conveniente cambiar el nombre de la carpeta (por ejemplo mis-fotos). Si no se cambia de nombre la carpeta, el programa se detendrá en el siguiente uso y no extraerá imágenes.

Para sacar las imágenes después a otros documentos PDF, solo hay que ir modificando el guión con el nombre esos ficheros (botón derecho->editar), copiar los ficheros PDF a la carpeta del programa, hacerle doble clic sobre el guión (fichero BAT), esperar a que extraiga todos los ficheros y renombrar la carpeta (importante esto último, porque si ya hay creada una carpeta con el nombre "PDF_to_JPG_files" el programa no extrae imágenes).

En GNU/Linux hay que compilar el programa. Para ello hay que usar la consola, y en la carpeta del código fuente usar el comando gcc p2j.c -o p2j Luego, hay que seguir un procedimiento parecido al de Windows, solo que con ficheros SH.

Este programa no siempre funciona bien, algunas imágenes las extrae en rebandas (es más bien un problema del fichero PDF que guarda la imágen así), otras veces salen ficheros corruptos que no pueden ser leídos (fallo del programa). Si en próximas ediciones arreglan este último fallo, lo retocan para que se pueda extraer ficheros desde cualquier directorio (sin necesidad de copiarlo a la carpeta del programa) y crean paquetes de instalacción fácil para Linux (tipo apt-get) sería un programa magnífico a la altura de muchos otros comerciales.

Hay otros programas, en el blog Genbeta hay una entrada dedicada a PDF Image Extractor. Este programa es parecido al que acabo de contar, pero tiene una interfaz gráfica (ventana). Sus pegas es que no es libre, solo funciona en Windows y no permite hacer una extracción usando la compresión JPEG que tenía en el fichero PDF (permite guardarlas en PNG, pero ocupa mucho, y recomprimirlas en JPEG afecta a la calidad). A veces también devuelve imágenes cortadas en rodajas, pero como conté, es más bien culpa del fichero PDF que del programa. En este caso habría que pasar por el GIMP para pegarlas (¿Te imaginas ordenar y pegar las tiras de papel de una trituradora de documentos?).

Si usas Linux puedes usar PdfRipImage, que es parecido al programa anterior ya quetampoco permite aprovechar la compresión JPEG del fichero original, aunque si dispone de una interfaz gráfica. Lo que más se echa de menos es que aún no dispone de paquetes de instalacción fácil, y hay que instalarle compilando el código.

Para la mayoría de gente recomendaría PDF Image Extractor, pero si buscas algo que saque las imágenes de la forma más directa posible para que no se degrade su calidad te recomiendo PDF_to_JPG.

domingo, 14 de diciembre de 2008

Nuevo blog: programando con SVG

No es novedad que este blog no lleva un elevado ritmo de publicación de entradas (a ver si publico una que tengo todavía a medias guardada hace un mes...), y que es más difícil llevar dos blogs a la vez que uno solo, pero aún así he decidido embarcarme en un nuevo blog (sin abandonar este) más orientado a la programación que al diseño.

El tema es que últimamente me picaba la curiosidad por la programación con el formato vectorial SVG (el que usa Inkscape y puede ser visualizado en Opera, Google Chrome y Firefox). Concrétamente he estado trasteando desde dos puntos de vista:
  • Programas que escriben ficheros SVG a partir de unos datos previos (por ejemplo, crear gráficos).
  • Ficheros SVG interactivos similares a los SWF (que puedes manipularles con eventos).
Ya tenía tres miniproyectos a medias, y tenía ganas de ir compartiendo como los hice y los cambios que haga. Como la temática de todo esto se sale (y mucho) de lo que es un blog sobre Inkscape, GIMP y otros programas libres he decidido crear otro blog y ir actualizando los dos poco a poco según pille tiempo.

La dirección será esta:

http://trukossvg.blogspot.com/

viernes, 7 de noviembre de 2008

Espirales de entrada y salida

Hacer espirales que al llegar al centro den media vuelta y vuelvan a salir no es difícil. Se empieza activando una rejilla (da igual cual sea) y haciendo una espiral. La rejilla se activa en archivo->propiedades del documento->rejillas. Ahí se pulsa en rejilla nueva (las características de la rejilla dan igual). Luego, en Ajustar se activa la casilla "Ajustar a rejillas" y se aumenta la distancia de ajuste.
Hecho eso se traza una espiral, y en la barra de herramientas, en la opción "radio interior", se introduce 0, para que la linea de la espiral empiece en el cero.

Luego se duplica esta espiral (se selecciona y se pulsa Control+D, o bien se usa el menú edición). La espiral duplicada se la gira dos veces 90º con el menú objeto o la barra de herramientas. Así aparece girada 180, aunque desalineada:

Para alinear la espiral se selecciona la espiral y se pulsa en el menú "Trayecto->Objeto a trayecto", y aparecerá la espiral como un trayecto formado por muchos nodos. Se seleccionan todos (mediante la herramienta de edición de nodos, manteniendo pulsado el ratón y cubriendo la espiral entera). Si no se seleccionan todos, luego queda mal.
Con todos los nodos seleccionados, se alinea la espiral con la rejilla, da igual en que punto sea. En mi caso coincidía que el nodo interior de la primera espiral estaba alineado ya en la rejilla, con lo que solo tuve que alinear la segunda (la que se da la vuelta). Si no coincide, no pasa nada, se hace el proceso de conversión a trayecto y alineado en las dos espirales, y listo. Lo importante es que el punto interior coincida.

Ya casi está, se seleccionan las dos espirales y se pulsa en "trayecto->Combinar", esto hace que las dos rutas formen parte de la misma. No sirve la opción "unión", porque está creada para figuras rellenadas, no para lineas.

Parece que está listo, pero no es así, en el centro hay dos nodos superpuestos, para convertirlos en uno solo, hay que seleccionarlos arrastrando con el ratón y formando un rectángulo que cubra los dos nodos. Luego se pulsa en el botón para unir dos nodos en uno solo:

Ya estaría terminado, si se rellena, quedaría así:


Si no se rellena, queda una espiral de entrada y salida.

miércoles, 29 de octubre de 2008

Patrones a lo largo de trayecto: más guiones para las rutas

Inkscape siempre ha permitido usar varios patrones diferentes para crear las lineas:

Es interesante, pero... ¿Que pasaría si es necesario algo similar a esto?


Inkscape 0.46 incorporó una nueva función: patrones en trayecto. Esta opción deforma una ruta y la sitúa a lo largo de otra. Esta función permite crear una mayor variedad de lineas.

Unos ejemplos muestran bien como se puede usar esta herramienta:
  • Ruta con bolas:
    Este es el caso más sencillo, se dibuja un círculo pequeño, se duplica, y se desplaza hacia un lado la copia (con la tecla control se fuerza a que solo se mueva en horizontal o vertical), luego se seleccionan las dos copias y se pulsa en trayecto->unión, para que formen una única figura (en el ejemplo está de color rojo). Luego se selecciona esta figura y se pulsa en edición->copiar.
    Con esta figura ya creada, solo queda la ruta que llevará esta forma. Se puede crear con cualquier herramienta, una vez dibujada se selecciona, y se pulsa en trayecto->efectos de trayecto, se selecciona "patrón a lo largo de trayecto" y se selecciona "repetido" en el recuadro "copias del patrón". Hecho esto se pulsa sobre el botón de pegar de este diálogo (el tercero por la derecha). Si sale muy raro, tal vez es porque el patrón copiado fuera vertical (en este caso marca la casilla "el patrón es vertical". El efecto ya está listo.
    Para editar la ruta, basta seleccionar el botón de editar rutas de la barra de herramientas. La trayectoria que tenía antes la ruta aparece marcada en color rojo, y se puede editar como cualquier ruta, con la diferencia de que esta ruta tiene un efecto asignado, que se puede ver como se modifica automáticamente según se edita la ruta.
    Si se quiere editar la ruta que forma el patrón, hay que pulsar el botón de editar rutas del diálogo de efectos de ruta (el patrón aparece destacado en verde). Es importante tener en cuenta este detalle de que aunque los botones llevan iconos parecidos, tienen funciones algo diferentes.
  • Linea con puntos a un lado:
    Es sencillo, es como el caso anterior, solo que el patrón se puede dibujar con un rectángulo y un círculo. Luego, con el diálogo de alinear se puede retocar la posición del círculo.
    Puede surgir a veces un problema, y es que se muestre el trayecto así, con algunos trazos rectos donde se esperaban trazos curvos:
    En ese caso, hay que probar a editar el patrón, porque tal vez tenga algún trozo abierto. Para ello se pulsa en el botónde editar nodos en el diálogo de efectos de ruta, y se examina el patrón:
    Observa que aparece en verde porque se está editando la ruta del patrón, no la ruta principal (que aparece en rojo cuando se edita). Ahora hay que seleccionar los dos nodos superiores, y pulsar en el botón de unir nodos con un segmento:
    Ahora aparece así el trayecto que forma el patrón
    Y mientras, el aspecto final del trayecto queda así:

  • Vías de tren:
    Este caso es similar a los anteriores. Su dificultad estaría más bien en alinear los objetos. Aquí muestro el proceso seguido, aunque no se aprecian bien las diferencias. En el último paso hice una copia más pequeña, porque era un patrón demasiado grande.
    Se empieza con un rectángulo vertical largo, y otro horizontal y estrecho. Se duplica este último rectángulo, y se mueve hacia abajo y se sitúan los tres rectángulos mas o menos en sus posiciones correctas. Luego se seleccionan los tres, y se alinean al centro respecto de un eje vertical con el diálogo de alinear objetos (el botón que aparece seleccionado):

    Después se seleccionan los rectángulos horizontales (no el vertical), y se pulsa en trayecto->unión para que formen un único trayecto. Luego, se selecciona todo se alinea al centro, pero respecto de un eje horizontal (sería el botón que está justo debajo del anterior). Ya con todo bien alineado, se selecciona todo y se pulsa de nuevo en trayecto->unión para tener un solo trayecto.
    Hecho eso ya está el patrón listo, ahora solo queda copiarlo y pegarlo en rutas:


La versión 0.47 permitirá nuevas opciones, como espaciar las copias o desplazarlas respecto de la ruta original. También permitirá que el patrón que se pega esté ligado a una ruta del dibujo (visible, no oculta como hasta ahora) y que cuando se modifique, se modifique también la ruta.

jueves, 23 de octubre de 2008

Cuerpos 3D: cilindros semitransparente

Un par de casos más: Un cilindro de pared delgada y otro transparente.
El de pared delgada no tiene ningún misterio, basta que la circunferencia superior esté rellena con un degradado, con lo que no hace falta duplicarla y reducirla de tamaño como en casos anteriores.

Un cilindro semitransparente es más complejo. Las paredes tienen que tener la forma correcta, no vale el truco de antes de dejar que algunas figuras tengan zonas mal dibujadas, pero que como quedan por debajo de otras figuras no se retocan.

En este caso, las paredes tienen que tener la forma similar a la que se ve en la figura del medio. Es algo fácil con una rejilla, la opción de ajustar a la rejilla los nodos y las cajas de contorno, y un par de elipses. Se empezaría con el rectángulo, y se le añade una elipse en la parte superior (en mi caso la morada), se duplica la elipse y se sitúa abajo (en mi caso la verde). Luego se duplican todas estas figuras (2 elipses y un rectángulo para la cara superior, y otros tantos para la inferior).

Para la pared trasera se sumarían la elipse superior y el rectángulo, y se restaría la inferior. La figura resultante está completa, así que se envía al fondo. Al enviar estas figuras al fondo, aparecen las que formarán la cara frontal. Pero antes de hacer esta cara, conviene duplicar la elipse inferior, darla el color adecuado y enviarla al fondo, ya que formará la cara inferior del cilindro. Por supuesto, este paso es innecesario si no se pone una cara inferior.

Luego, con las figuras que hay, se hace la cara frontal: primero se resta la elipse superior del rectángulo, y se le suma la elipse inferior. Hecho esto, solo falta dar los colores y transparencias adecuadas al cilindro.


En mi caso no añado una tapa superior, puesto que dibujo el cilindro abierto por arriba, como si fuera un vaso.

jueves, 16 de octubre de 2008

Cuerpos 3D: cilindros anchos y huecos

En el caso de dibujar un cilindro bajo y hueco aparece un nuevo detalle: el cilindro debe dejar ver el fondo a través de si mismo. Esto significa que el truco de poner un círculo más pequeño con un degradado sobre la base superior ya no funciona.

En este caso hay que agujerear la tapa, y añadir una nueva figura que haga de pared interna, que tenga forma circular debajo. Además, hay que modificar la figura que hace el cuerpo del cilindro para que no tape el agujero.

En este caso se parte de un cilindro ya hecho que es muy bajo (el de la primera figura de la imágen de abajo con el proceso). Lo primero que se hace es duplicar la elipse que forma la tapa del cilindro (base superior), y se le aplica un factor de reducción de un 80% aproximadamente. Esto se hace con el menú objeto->escalar y dentro de la ventana se pulsa limpiar, y se mete 80. Para distinguir esta nueva elipse, es conveniente darla otro color (en mi caso usé magenta). Así quedaría como en la segunda figura.

Luego, se vuelve a duplicar la elipse que hace tapa, y se deplaza hasta alinearla con la base del cilindro. Esto es sencillo seleccionándo la elipse y el cuerpo del cilindro y con la diálogo de alineación (objeto->alinear y distribuir), se selecciona "Elemento mayor", y se pulsa el botón resaltado en la imágen:

Una vez alineado, se le reduce de tamaño como la otra elipse (la morada). En mi caso, la pongo de naranja para distinguirla. Al final se tiene como la tercera figura.

Luego, con la herramienta de rutas hay que hacer una ruta (trayecto) con lineas rectas que vaya por fuera de la circunferencia elipse (en mi caso morada), y por dentro de la tapa del cilindro (si se sale por abajo no pasa nada). En mi caso hago esta ruta de color verde para distinguirla de los otros objetos. Luego, hay que situarla por debajo de las dos elipses nuevas. Quedaría más o menos como se ve en la figura cuarta.

La versión 0.47 de Inkscape trae un botón para forzar a hacer lineas rectas, que aparece en la barra de herramientas con las opciones de las herramientas:

Luego vienen las restas: Se selecciona la elipse que forma la tapa del cilindro, y la elipse pequeña de arriba (en mi caso la de color magenta) y se pulsa en trayecto->diferencia. Quedaría la tapa del cilindro con un agujero (que no se ve con la ruta verde, pero sería la sexta figura).

Luego se selecciona la ruta nueva (que en mi caso es de color verde) y la elipse inferior (la que es naranja), y se pulsa en trayecto->diferencia para recortarla y que quede como en la sexta figura. Ahora hay que mandar esta ruta al fondo (figura 7).

Ahora aparece por ahí la figura que forma parte del cuerpo del cilindro, que ahora se ve a través del agujero. Hay dos opciones, recortarla con una ruta nueva y usando "trayecto->diferencia", o editarla para que quede bajo la tapa que forma el cilindro. Aquí se ve por dónde puede ir la ruta (por supuesto, no tiene que ser algo exacto, con que no se vea por el agujero de la tapa ni queden huecos en el cuerpo del cilindro basta):

Para ello, se usa la herramienta de editar nodos (doble clic en la ruta), se selecciona el segmento superior de la ruta, y se pulsa en añadir nodo:

Luego se mueve este nodo hacia abajo, hasta que quede bien. Como es normal, es posible que se necesiten más nodos, para ello se puede añadir nodos nuevos, se selecciona el segmento y se pulsa en añadir nodos. Puede ser útil llevar esta ruta al frente para editarla y luego volverla a dejar al fondo.



En principio ya está el cilindro, solo queda ajustar bien el degradado de la ruta que en mi caso era verde. La herramienta de rutas y tener un buen ojo bastan para terminar el cilindro. La tecla control permite hacer que la linea que define el degradado quede totalmente horizontal.

miércoles, 15 de octubre de 2008

Cuerpos 3D: como dibujar cilindros

Inkscape no es un programa 3D, pero permite crear fácilmente cuerpos geométricos.

Este tutorial explica como se pueden crear cuerpos cilíndricos fácilmente, usando operaciones boleanas sencillas y el autoajuste a la rejilla.

En este tipo de dibujos es útil usar la rejilla, y las opciones para ajustar los nodos según se dibuja. También hay que tener en cuenta el punto de vista y la iluminación. El punto de vista es desde donde se vería el cuerpo, y la iluminación determinará los colores y degradados a aplicar. Si se dibujan varios cuerpos geométricos es importante dibujarles todos con el mismo punto de vista y iluminación para que quede bien.

Se empieza haciendo un rectángulo (primera figura), y a continación una elipse en la parte superior. Esta elipse debe estar "achatada", es decir, ser más ancha que alta. Cuánto más bajo sea el punto de vista desde donde se vería la elipse, más achatada hay que dibujarla. Es importante que la elipse tenga el mismo ancho que el rectángulo, y que su eje horizontal coincida con el lado superior del rectángulo. Gracias a la rejilla, esto es bastante sencillo. En la segunda figura se ve como iría quedando, si se añade la elipse inferior que se añadirá en el siguente paso.

Después, se duplica esa elipse y se sitúa la copia en la parte inferior del rectángulo, para que su eje horizontal coincida con el lado inferior del rectángulo (segunda figura). Si se dan colores diferentes es más fácil diferenciar los elementos al dibujarlos. La elipse superior hay que llevarla al frente, para ello se selecciona y se pulsa la tecla inicio del teclado, o se puede pulsar en el icono de la barra de herramientas: Ahora se selecciona la elipse inferior y el rectángulo, y se pulsa en trayecto->unión , para unir estas figuras y formar el cuerpo del cilindro. El resultado ya se parece a un cilindro, pero un degradado ayudará bastante a tener un buen resultado. En la tercera figura se ve el resultado.

Este degradado se puede realizar con la herramienta de degradados, hay seleccionar un degradado lineal y hay que trazarlo en horizontal (la rejilla puede ayudar). Para que quede el aspecto que se ve (una banda brillante), hay que hacer que el color del nodo de la izquierda tenga el color del cilindro, y el de la derecha sea un poco más oscuro (está un poco a la sombra). Además, para hacer el brillo hay que añadir un nodo en el medio. Se puede hacer pulsando la tecla control y haciendo doble clic. Este nodo debe tener un tono más claro que el del cilindro. Para terminar este degradado, hay que hacer coincidir el nodo izquierdo con el borde del objeto, y el derecho tiene que estar un poco fuera de la pared del cilindro.


Estas indicaciones son orientativas, puesto que dependen mucho del autor y sus habilidades.

El cilindro ya está. Si se quiere hacer que sea hueco, basta con seleccionar la elipse superior, duplicarla y reducirla de tamaño. Esto se puede hacer fácilmente con una transformación, para ello se va al menú objeto->transformar, se pulsa en limpiar, y dentro de la pestaña escalar se mete un factor de 80% (o el valor que mejor venga) en las dos direcciones y se pulsa aceptar. Luego se añade un degradado a esta elipse teniendo en cuenta que la parte brillante queda en una zona diferente que la parte exterior del cilindro. En el ejemplo mío sería la quinta figura.

Ya está el cilindro hueco, pero si se le quiere añadir más detalles, se puede. Por ejemplo, se puede añadir una banda lateral, para eso basta con duplicar la elipse superior, y llevarla hasta una altura intermedia, volverla a duplicar y desplazarla un poco en vertical (como se ve en la sexta figura). Luego, se añade un rectángulo cuyos lados coincidan con los ejes horizontales de las elipses (rectángulo rosa de la séptima figura).

Con operaciones boleanas se hace saca la forma: Primero se selecciona la elipse inferior (naranja en mi ejemplo) y el rectángulo, y se pulsa en trayecto->unión. Luego, se selecciona la elipse superior, y se lleva al frente (octava figura) y luego se selecciona la figura obtenida de juntar la circunferencia y el rectángulo (de color naranja). Con estas dos figuras seleccionadas se pulsa en trayecto->diferencia, para que la elpse roja "reste" su forma a la figura naranja. El resultado se fe en la figura 9. Se rellena con un degradado similar al resto del cilindro, y quedaría como la figura 10.


¿Se puede avanzar más? Si, se puede añadir un reflejo estilo 2.0 y un poco de sombra hacia atrás. El reflejo es simple: basta duplicar el cuerpo del cilindro, moverle hacia abajo y modificar los colores (mejor que yo, a ser posible, que me quedó un poco mal). Con la banda, algo parecido. La sombra me costó más: al final usé el efecto "motion" (efectos->generar desde el trayecto->motion) con una copia de la elipse superior. Este efecto tiene dos parámetros, un ángulo y una longitud. La longitud va en píxeles, y el ángulo en grados. Es importante tener en cuenta que 0º es a la derecha, 90º es hacia abajo, 180 es hacia la derecha y 270 hacia arriba. En mi caso usé 240º. Este efecto está bien, pero tiene el defecto de producir muchas rutas que deben ser combinadas entre si antes de darlas un tono semitransparente. Estas rutas se crean dentro de un grupo nuevo. Una vez combinadas las rutas, se sitúan en la posición correcta, y se rellenan de un tono semitransparente mejor que el que le di, que no parece que quede bien.

viernes, 3 de octubre de 2008

Nueva versión de GIMP disponible

Ya han lanzado la versión 2.6 de GIMP, en esta página web se pueden ver las novedades de la nueva versión, de las que yo destacaría:

  • Cambio en la interfaz: ahora hay al menos una ventana abierta (además de los diálogos de opciones y la de herramientas). Esta ventana está vacía cuando no hay imágenes cargadas, al abrir una imágen, esta se carga en esa ventana. El resto de imágenes se cargan en nuevas ventanas. Cuando se cierra la última imagen, vuelve a aparecer esa ventana de inicio, y si se cierra, se cierra GIMP.
  • Un único menú: ahora hay un solo menú, en la ventana de inicio, o de imágen si hay alguna imágen cargada.
  • Herramienta de texto mejor: ahora realiza los saltos de línea automáticamente, puesto que se puede delimitar la anchura de la capa de texto.
  • Mover la imágen más allá de los bordes de la ventana: a veces hay que situar un nodo de la ruta fuera de la imágen, antes esto no se podía hacer si no se usaba un zoom pequeño que dejara ver el área fuera de los bordes del lienzo. Ahora, se puede hacer con mucho zoom, gracias a que se puede desplazar la imágen fuera de la ventana.
  • Mejora en la selección del lazo: ahora permite realizar selecciones poligonales fácilmente.
  • Mejora en las brochas: ahora permiten controlar mucho mejor el efecto de la presión, la velocidad...
  • Saltar fácilmente de brillo-contraste a niveles, y de niveles a curvas. Todo ello sin perder los valores usados en los diálogos.
Sin duda un buen paso más.

lunes, 30 de junio de 2008

gimp-plugin-registry un paquete muy completo

¿Usas Debian GNU/Linux? ¿Y Ubuntu? Si usas una de estas dos distribuciones puedes instalarte este paquete:

gimp-plugin-registry

Es un paquete muy completo lleno de filtros que no vienen en la instalación de GIMP. No hay forma más cómoda de instalarlos todos que con este paquete. Entre otros paquetes contiene:
  • Escalado líquido (liquid rescale), escala imágenes prescindiendo eliminando las zonas con menos información (deformaría la imagen), GIMP es uno de los pocos programas que lo tienen.
  • Corrección de la aberración cromática, (fix-ca) soluciona este problema de algunas fotografías
  • Guardar para web, permite guardar rápidamente una imagen en los formatos típicos de Internet, comparando los tamaños entre las diferentes decisiones.
  • Procesado masivo de imagenes (David's Batch Processor)
  • Desdenfoque de foco (Focus-Blur), imita el desenfoque producido por una lente, en Photoshop hay uno parecido llamado desenfoque de lente.
  • GREYCstoration, limpia el ruido de las imágenes.
  • Limpieza de ruido por ondículas (Wavelet Denoise), como el anterior, pero con un procedimiento diferente, y más rápido.
Hay más filtros, pero estos son los principales. Según que versión del paquete se instale podrían faltar algunos. Este paquete para mi es muy recomendable.

miércoles, 4 de junio de 2008

Sombra con colores

JT me preguntó hace poco si se podía modificar el color de la sombra o su transparencia.
He estado mirándolo un poco, y si que es posible, añadiendo un filtro primitivo más entre medias, como se ve en las conexiones:

Este filtro es Matriz de colores, y funciona de forma parecida al mezclador de canales de GIMP (menú colores), su funcionamiento detallado lo explicaré más a fondo en el futuro, ya que para este caso, no hace falta tocar muchas opciones. Lo primero es usar tipo "matriz", aunque normalmente esta opción ya aparece seleccionada.

Para modificar la transparencia y hacerla menor, se puede modificar el valor de la última fila, el señalado en verde. Un valor de 1 dejaría la transparencia tal cual estaba, un valor de 0, haría la sombra complétamente transparente, y un valor intermedio, daría un resultado con una sombra más semitransparente.

Para modificar el color, hay que tocar las otras tres casillas señaladas en verde, añadiendo valores entre 0 y 1. 0 representa la ausencia de ese color primario, y 1 que ese color está al máximo. En mi caso usé Rojo 0, Verde 0.25 y Azul 1.

Hecho esta modificación, ya se puede usar el filtro, seleccionando un objeto y activando la marca de verificación de la columna filtrar:


Es evidente que si se quiere que otro objeto tenga otro color de sombra, se necesitaría otro filtro, aunque esto es sencillo, basta con pulsar con el botón derecho en el nombre del filtro en la columna "filtrar", y duplicarlo. Se añade un nombre nuevo (sombra roja, sombra verde...) y se modifica la matriz anterior para que salga el color buscado.

Es de agradecer los comentarios al blog, porque me dan ideas a cerca de que entradas pueden resultar más interesantes.

martes, 3 de junio de 2008

Filtros en Inkscape: Solucionar problemas de recorte del efecto

Gracias a un comentario de JT en la entrada anterior me he dado cuenta de que algunas configuraciones del efecto de sombra podían producir errores de recorte en el efecto.

Esto es debido a que Inkscape procesa los filtros dentro de un área determinada, este área es la zona donde está el objeto. Esto es así porque algunos filtros tendrían un área matemáticamente infinita (como el desenfoque gaussiano), y para ahorrar recursos, solo se calcula la zona donde se va a notar el filtro, es decir, en las proximidades del objeto donde se aplique.

Inkscape normalmente establece este área automáticamente, aunque a veces puede fallar, dejando el efecto recortado.

La forma de solucionar este problema es relativamente sencilla, basta con ir a la pestaña "ajustes generales de los filtros y aumentar un poco el tamaño de ese área.


En este ejemplo se ha probado a introducir manualmente un área más pequeño, viéndose como se recorta la figura:


Con aumentar un poco ese área, suele bastar para solucionar el problema. Las cifras exactas dependen del caso, así que lo mejor es tantear un poco, sin meter valores muy altos.

Ahora estoy un poco liado con los exámenes, pero sería una buena idea seguir hablando un poco de más filtros de Inkscape, como me sugirieron.

sábado, 31 de mayo de 2008

Filtros en Inkscape: Dar sombra a un objeto

La última versión de Inkscape incluyó la compatibilidad con los filtros que tiene el estándar SVG. Esos filtros modifican los elementos del dibujo de formas parecidas a los filtros que tienen muchos programas de mapa de bits como el GIMP o Adobe Photoshop.

Lo mejor de estos filtros es que son complétamente dinámicos. Si se modifica el objeto de origen, el filtro se actualiza inmediatamente. Por ejemplo, en la imagen anterior si cambio la fuente de "Inkscape", la sombra cambia automáticamente de acuerdo con la nueva fuente usada.

El uso de filtros en la versión actual de Inkscape es un poco complicado, ya que hay que crear los filtros mediante un diagrama. Es posible que en versiones futuras faciliten la tarea añadiendo algunos filtros ya creados.

Lo primero, si se va a aplicar el filtro a varias figuras, es recomendable que estén agrupadas. Luego se pulsa en Objeto-->Efectos de filtro.

Una vez en este diálogo, se pulsa en "nuevo", y se asigna un nombre. Luego, en el selector que está junto al botón "añadir efecto", se selecciona desvío y se pulsa en añadir. Luego se selecciona "desenfoque gaussiano", y se pulsa añadir, y lo mismo para "combinar".

Ya están añadidos los filtros primitivos, ahora queda conectarles entre ellos adecuadamente. Para ello, hay que tener en cuenta que cada filtro primitivo tiene una salida, y varias entradas:

Las entradas aparecen en verde, las salidas en rojo, salvo la del último, que aparece en azul. Esto es porque esa salida no va a parar a ningún otro filtro y por lo tanto, es el resultado que se verá finalmente en la imagen. Las entradas de los filtros se pueden conectar a la salida de otro filtro, o bien a alguna propiedad de los gráficos de origen, señalados en amarillo.

Para conectarles entre si, hay que pulsar el ratón el alguna entrada, arrastrar y soltar en la salida de otro filtro o en alguna propiedad de la imagen. En este caso, habría que conectar la entrada de desenfoque gaussiano a la salida de desvío, la primera entrada de combinar a la salida de desenfoque gaussiano (observa que aparece una entrada más), y la segunda hay que llevarla hasta "gráfico de orígen". Para finalizar, se arrastra la entrada de desvío hasta "alfa de orígen".

Sería algo así:

Hecho esto está completo el filtro, y solo quedan dos detalles:
  • Activar el filtro: tan sencillo como activar la marca de verificación donde está el nombre del filtro (columna filtrar), con alguna figura de la imagen seleccionada. El filtro se aplica inmediatamente.
  • Ajustar el filtro: para ello, se pulsa en "desvío", y con los controles "Delta X" y "Delta Y" se controla la posición de la sombra. En "desenfoque gaussiano", se puede controlar el grado de desenfoque de esta.
Para aplicar este filtro a otras figuras, hay que seleccionarlas, y activar la marca de verificación de este filtro. Si se quiere usar este mismo filtro, pero con algún ajuste diferente a las otras figuras (por ejemplo, una sombra más desenfocada), es sencillo: basta con pulsar en el nombre del filtro con el botón derecho (menú contextual), pulsar en duplicar y asignarlo a esas otras figuras.

Existen muchas posibilidades con filtros en Inkscape, aunque este filtro de sombra es muy básico y sencillo. En www.gimp.org.es existe un tema en el foro donde se trata esto de los filtros:

http://www.gimp.org.es/modules/newbb/viewtopic.php?topic_id=2815&forum=15

Sería deseable que las próximas versiones permitan usar tanto filtros "hechos a mano", como otros que vengan ya hechos, y que se puedan ajustar con un diálogo sencillo.

domingo, 18 de mayo de 2008

Recuperar botón derecho en Firefox fácilmente

¿Has llegado a una página web y estás cansado de que te toquen las ____ quitándote el botón derecho del ratón?


Bien, para salir del paso y recuperar el menú contextual, puedes copiar este texto y pegarlo en la barra de direcciones:

javascript:void(document.oncontextmenu=null)

Pulsa enter, y listo, la "protección anticopia" saltará por los aires, y podrás usar el menú contextual sin problemas. Como suelen decir:

"lo que se puede leer, se puede copiar"

Si quiere agilizar el proceso para cuando lo necesites en el futuro, puedes probar este otro truco: crea un nuevo marcador (favoritos), es decir, Marcadores->Añadir marcador. Luego, edita ese nuevo marcador, para ello pulsa en el menú marcadores de nuevo, y pulsa con el botón derecho y dale a propiedades, en esa ventana, se modifican los campos. El más importante es Ubicación (el resto da igual), que tiene que tener el siguiente texto (haz triple clic para seleccionarlo todo, porque hay una parte que no se ve):

javascript:void(document.oncontextmenu=null);javascript:void(document.onmousedown=null);javascript:void(window.onmousedown=null)

Más o menos quedaría así:


Una vez hecho, se pulsa aceptar y listo, cada vez que una página quiera coartar tu libertad de uso del ratón, pulsa en este marcador y listo, ya puedes volver a usar el botón derecho lo que quieras. Incluso puedes tenerlo en la barra de marcadores.

Dar las gracias a este blog, porque este truco lo acabo de necesitar, y me ha sido de gran ayuda:
http://blog.faqoff.org/2007/09/22/activar-el-boton-derecho-del-raton-en-paginas-donde-no-funcione/

sábado, 3 de mayo de 2008

Agrandar imagenes en pixel art

Scale2x (http://scale2x.sourceforge.net/) es un programa (y biblioteca) pensado para agrandar pantallas de videojuegos, imagenes en píxel art... Esto es porque en estos casos la interpolación bicúbica ofrece resultados no siempre satisfactorios.

Scale2x trabaja en los bordes procurando darles formas más redondeadas en esquinas. Solo permite agrandar al doble, triple y cuadruple de tamaño. No es perfecto de tamaño, pero puede ser de ayuda. Otra ventaja es la de no añadir colores adicionales a la imagen, con lo que los ficheros PNG a penas aumentan de tamaño.

Su uso es relativamente sencillo pese a usarse en consola. Basta con un sencillo truco: crear un fichero de texto con los comandos necesarios para usarlo. En Windows sería más o menos así:

Primero se descarga el fichero con el programa (en el caso de Windows sería el segundo enlace) y se descomprime en una carpeta vacía. Luego en esta carpeta se crea un fichero de texto nuevo con extensión .BAT (y el nombre que se quiera, por ejemplo "agrandar.BAT") y en el se escribe lo siguiente:

scalerx.exe original.png agrandado.png

Se guarda el fichero, y está listo para ser usado. Primero se copia la imagen PNG en la carpeta, se edita el fichero BAT creado sustituyendo "original.png" por el nombre del fichero original, y se guarda. Se ejecuta el fichero BAT (doble clic) y se obtiene el fichero "agrandado.png" que corresponde con la imagen con el doble de tamaño.

En Linux es parecido, pero creando un fichero .SH de comandos, y compilando el código fuente descargado.

Ejemplos con una imagen de prueba. Imagen original con varios elemento:

Imagen agrandada sin interpolación (pulsar para ver a tamaño real):
Imagen agrandada con Scale2x (pulsar para ver a tamaño real):

Se puede usar el mismo procedimiento para triplicar (y cuadruplicar) la resolución, se crea otro fichero .BAT con este comando (para cuadruplicar sería -k4):

scalerx.exe -k3 original.png agrandado.png

Este algoritmo también se puede implementar en juegos y emuladores gracias a su gran velocidad de proceso.

Un truco adicional es aumentar el tamaño con interpolación Scale2x y sin ella, y luego en GIMP superponer las dos imágenes en capas diferentes y borrar las zonas según se vea mejor con un procedimiento o otro.

lunes, 18 de febrero de 2008

Usar complementos de Photoshop en GIMP

Adobe Photoshop es uno de los principales programas que hay en tratatamiento de fotos y diseño gráfico, debido a esto se diseñan numerosos complementos para él, algunos de los cuales son gratuitos, y otros incluso de código abierto.

Existe un complemento para GIMP que permite integrar en GIMP complementos que estaban pensados para usar en Photoshop sin necesidad de descompilarles.

Este complemento se puede encontar en esta página:
http://www.gimp.org/~tml/gimp/win32/pspi.html

Al final del todo viene una lista de ficheros correspondientes a varios sistemas operativos, hay que descargar el fichero necesario, y descomprimir su contenido en la carpeta de complementos de GIMP. Esta carpeta suele ser en Linux:
\home\_nombre de usuario_\.gimp-2.4\plugins
Y en Windows:
Unidad:\Documents and Settings\_nombre de usario_\.gimp-2.4\plug-ins

OJO: si tienes GIMP 2.6 o cualquier otra versión, la carpeta tendrá el nombre .gimp-2.6 o el de la versión que tengas. La carpeta "_nombre de usario_" se corresponde con el nombre de usuario que uses en el ordenador.

Hecho eso, se crea una carpeta vacía (para poner los complementos de Photoshop), puede ser dentro de la carpeta de complementos o cualquier otra, aunque resulta mejor hacerlo dentro de la de complementos porque así se tiene todo más organizado.

Con esa carpeta creada, arranca el GIMP y se pulsa en "Exts->Photoshop plug-in Settings..." para acceder a la ventana de configuración del filtro. En esta ventana que sale, se pulsa el botón con la hoja de papel en blanco, y luego en el de la carpeta. Se selecciona la carpeta creada antes (se pueden crear varias carpetas si se desea, solo hay que ir añadiéndolas).


Ahora solo queda pegar complementos en esa carpeta y reiniciar el GIMP para que los lea. No todos los complementos son igual de compatibles, además, suele ser difícil ver toda la foto en las vistas previas. Si al arrancar un complemento da error, no suele ser mucho problema y no suele afectar al programa, aunque por lo general, es mejor retirar el complemento de esa carpeta, o añadir una doble extensión (.8bf.bak) para que no sea leido a la próxima vez que GIMP arranque.

Los complementos suelen aparecer en la carpeta filtros, en la zona inferior donde suelen quedar los complementos de usuario, muchos de ellos crean un submenú con el nombre del autor o de la empresa que hizo el complemento.

Los complementos de Adobe Photoshop suelen tener la extensión 8bf. En la carpeta antes citada, se pueden meter los ficheros que se quieran, PSPI solo leerá los que tengan esa extensión. Esto permite meter los readmes que suelen venir con muchos ficheros, donde se especifica la licencia y condiciones de uso, trucos y consejos, autores...

Tengo previsto hacer una lista de complementos que funcionan más o menos bien en GIMP, y sean gratuitos o mejor aún, libres. De momento tengo muy poco preparado:
http://docs.google.com/Doc?id=dgcrkb79_10hk84wzf5

Un ejemplo con una foto de la discoteca KKO:


Foto: http://djrafa7.iespana.es/pg003.html
Complemento usado: http://www.cybia.co.uk/edgeworks.htm

Más información:
http://www.laconsolablog.com/2008/01/06/gimp-xtreme-power/
http://trialbloggy.blogspot.com/2005/11/plugins-de-photoshop-en-gimp.html

Por último, decir que no hay que entusiasmarse, algunos complementos de Adobe Photoshop no funcionarán, otros, están hechos para que solo se puedan instalar si Adobe Photoshop está ya instalado (son instaladores bastante rígidos y no dan opción a instalarlo en GIMP), y otros no serán de mucho interés, ya que su efecto podría ser realizado más cómodamente con los filtros que GIMP ya trae en su instalación. También hay que destacar que este complemento no da compatibilidad para brochas de Photoshop, solo para filtros, aunque GIMP suele tener de por si una buena compatibilidad con las brochas de Adobe Photoshop.

lunes, 14 de enero de 2008

Usar nuevos guiones para los bordes en Inkscape

Inkscape es un programa de diseño vectorial de fácil uso, pero que permite hacer creacciones muy buenas. De todas formas, algunas versiones siguen arrastrando algunos problemas, como el poder determinar guiones personalizados para las lineas (los guiones para las lineas, es lo que permite hacer lineas de puntos, trazos más largos o más cortos, contínuas...). La versión 0.46 aún no lo tiene solucionado, aunque hay algún truco medio avanzado que permite usar los guiones que queramos (el estándar SVG permite usar cualquier guión, aunque Inkscape nos ofrece unos pocos predefinidos).

Uno de ellos es entrar en el editor XML (Edición->Editor XML) y escribir el guión para una ruta de la imagen. Para ello se pone en la linea un guión (da igual el que sea). Luego, se entra en el editor XML con la ruta seleccionada. En la parte de la derecha busca el atributo "style", y se pulsa sobre el. En la parte inferior aparecerá el contenido de esa etiqueta, lo que hay que hacer, es modificar la propiedad "stroke-dasharray", poniendo el guión deseado, y pulsando aceptar (es posible que Inkscape reestrucutre un poco lo escrito). Por supuesto, antes de hacer esto se guarda la imagen por si acaso hay algún problema.

A continuación explico un poco como funciona este parámetro. Es importante no modificar la estructura de la etiqueta, se pueden añadir más valores de dos en dos, y separados por comas. La etiqueta a modificar estaría aquí:Al final quedaría así (los espacios entre números los introduce Inkscape automáticamente) :
El otro, es añadirlos a la lista que se despliega en Inkscape, a través de su archivo de configuración. Este achivo se llama "preferences.xml", y se encuentra en la carpeta:

/home/__tu nombre de usuario__/.inkscape (GNU/Linux)
UNIDAD:\Documents and Settings\__tu nombre de usuario__\Datos de programa\Inkscape (Windows)

Dentro de ese archivo se verán muchas lineas con la configuración. Con un editor de textos (a ser posible que coloreé la sintaxis XML), se busca la palabra "stroke-dasharray". Debería a parecer una serie de lineas así:

<dash
style="stroke-dasharray:0.02 0.02;"
id="dash-0150-0150" />

Pues bien, es ahí donde se define esa lista. Si se añaden más etiquetas, y no se rompe el marcado XML (importantísimo), se pueden añadirse nuevos guiónes. Aquí dejo uno:

<dash
style="stroke-dasharray:1 1 3 1 1 3;"
id="dash-1-1-3-1-1-3" />

El funcionamiento es sencillo: "id" es el nombre, y tiene que ser diferente a los otros nombres. En "style="stroke-dasharray:1 1 3 1 1 3;" " se introducen los parámetros que nos gusten para formar la linea. El primer número, representa la longitud del tramo que habrá trazo, el segundo, es la longitud que quedará entre trazo y trazo, el siguiente, es la longitud que hay trazo, y así sucesívamente. Pueden añadirse tantos números como se quiera, pero tienen que ser pares, y dejando un espacio entre números, y no eliminando el punto y coma, las comillas... Y repito, teniendo cuidado de no romper la sintaxis.

Un ejemplo: 1 1 3 1 1 3 quedaría una linea así: /----------/
A lo largo...
------------------------------------------------------------

Esta operación hay que hacerla con Inkscape cerrado, y con una copia de seguridad del fichero por si acaso se rompe la sintaxis XML o se define mal la linea.


Ojalá en próximas versiones de Inkscape mejoren este detalle, y que el usuario pueda hacerse sus guiones fácilmente.

EDICIÓN POSTERIOR:
Aquí he encontrado un tutorial en inglés sobre como crear patrones personalizados, y añadirlos para que Inkscape los muestre en el desplegable de patrones:

http://ffaat.pointclark.net/blog/archives/143-Creating-and-Adding-Custom-Patterns-to-Inkscape.html

En Inkscape 0.46, habrá varios patrones ya definidos, a parte de los que se pueden crear.

Adquirir paletas para GIMP a partir de páginas web

Palette Grabber es un complemento para Firefox que permite crear paletas a partir de los colores empleados en las páginas web. Este complemento toma los valores usados en los ficheros HTML y CSS para hacer las paletas. Permite guardar las paletas en formato GIMP, pero también en formato Adobe Photoshop, Adobe Fireworks, Flash, Paint Shop Pro, Mac OX y como documento de texto. Para acceder a este complemento, hay que pulsar en un botón que aparece abajo a la izquierda (en la barra de estado) de la ventana de Firefox.

Un detalle importante en Linux (al menos con el escritorio XFCE), es que para elegir el tipo de fichero hay que pulsar en "buscar otras carpetas", y ahí, elegir GIMP.

Ejemplo de paleta generada:


Un detalle de las extensiones de Firefox, es que funcionan en Windows y en GNU/Linux sin problemas de compatibilidad.