jueves, 29 de abril de 2010

Imagemagick: editor de imágenes desde la consola

Imagemagick es un paquete con herramientas para la edición de imágenes directamente desde la consola y como bien sabemos todo lo que se pueda hacer por consola sirve mucho más cuando lo hacemos de forma remota :D.
Como bien dice su lema, imagemagick sirve para "convertir, editar y componer imágenes". Se puede revisar la lista de herramientas con una breve descripción del uso de cada una en este enlace "Imagemagick - command line tools".


Por lo general las que más utilizo son: display, identify y convert (o mogrify). Otra herramienta útil es "montage", pero nunca he trabajado con ella :P.
Este paquete de utilidades para trabajar con imágenes es más práctico y útil de lo que puede parecer a primera vista,  por ejemplo: se puede crear un script para trabajar un conjunto de imágenes de forma automática y no tener que hacerlas una por una, también crear alguna página en php para trabajar con imágenes, etc. De hecho, por lo general las cosas que he visto en web casi siempre trabajan utilizando imagemagick o lo tienen como opción :)
Ahora a lo que iba... una descripción rápida de las que utilizo:

  • display
Ésta realmente no es para usar con la consola ya que sirve para visualizar una imagen :P, más bien es cuando se tiene acceso a las X en vivo y en directo o por ssh con la opción de replicación de X como lo vimos en la publicación anterior ;).
Más info y opciones: Documentación display
  • identify
Con esto podemos tener información sobre alguna imagen, tal como el formato (algunas veces las extensiones están mal puestas), las dimensiones y el peso. También es posible obtener mucha más información agregando la opción "-verbose".
Más info y opciones: Documentación Identify
  • convert o mogrify
La única diferencia entre ellas es que con mogrify se trabaja directamente sobre la imagen, en cambio con convert se crea una copia. Dependiendo del caso es la que se usa, por ahora me centraré en "convert" :P. Estas herramientas son las que más sirven en la parte de edición de imágenes en sí.
Una lista con ejemplos rápidos de uso:

(*) Redimensionar una imagen, achicándola a un 80% del original
convert imagen.jpg -resize 80% imagen2.jpg 
Para redimensionar sin crear otro archivo sería: mogrify -resize 80% imagen.jpg
 

(*) Redimensionar muchas imágenes
mogrify -resize 80% *.jpg

(*) Redimensionar de forma no proporcional
convert -resize 650x480 imagen_original.jpg imagen_final.jpg

(*) Cambiar calidad de una imagen
convert -quality 85 imagen_original.jpg imagen_final.jpg

(*) Agregar texto a la imagen (esto sí que es práctico para marcar)
convert -font verdana -fill yellow -pointsize 16 -draw "text 10,15 'www.miweb.com'" imagen_original.jpg imagen_texto.jpg

Donde:
-font [nombre de la fuente] es la fuente (tipo de letra) que se usará.
-fill [color] es el color con el que se escribirá dicha fuente, por defecto creo que es el negro (no me acuerdo xD).
-pointsize [numero] es el tamaño de la letra
-draw "[text posicion,posicion] 'texto'". Acá hay que dejar claro que el parámetro va encerrado completo entre comillas dobles (") y el texto a escribir va dentro de esas comillas y encerrada entre comillas simples ('). Creo que hay otras formas de hacerlo, pero ahí sería cosa de probar los parámetros, si alguien ya lo probó de otra manera me avisan :P

(*) Rotar una imagen
convert -rotate 90 imagen.jpg imagen_rotada.jpg o convert -rotate -90 imagen.jpg imagen_rotada2.jpg

Más info y opciones: Documentación Convert

Y para finalizar acá dejo ejemplos --> Imagemagick - ejemplos

Referencia:
Imagemagick 

domingo, 25 de abril de 2010

Ejecutar programas de forma gráfica por SSH usando Xming

Más de alguna vez he querido ejecutar algún programa cuando estoy conectada por ssh desde windows y no puedo por falta de una interfaz gráfica (también conocida como "X"). Al ejecutar alguno de esos programas se recibe el error ": [...] cannot open display".
¿Es posible ejecutar algún programa que necesita de interfaz (o X), cuando estamos conectados por ssh? ¡Por supuesto!, es acá cuando entra en juego la opción "X11 forwarding" del ssh y el programa Xming :D



Para llevar esto a cabo necesitamos algún programa para conexión por SSH, por lo general con el que trabajo es con el famoso "Putty" así que será éste el que use como referencia.

Lo primero es descargar el "Xming" e instalarlo. Viene con un wizard bastante entendible así que no es mucho lo que se debe hacer más que elegir las opciones que más nos acomoden y "siguiente siguiente siguiente", con esto ya lo tenemos instalado (versión corta xD).
Lo siguiente es ejecutar el putty, es acá donde debemos poner ojo en las opciones a utilizar, no hay que olvidar activar la opción del "x11 forwarding". Dentro del menú que está en la izquierda, ir a "Connection" -> "SSH" -> "X11" -> X11 Forwarding, activar la casilla "Enable X11 forwarding".
De paso, de preferencia activar el protoco 2 del ssh ("Connection" -> "SSH" -> Preferred SSH protocol version: "2").
Si habitualmente tenemos algún perfil guardado, sólo hay que editarlo agregando la opción del forwarding indicada más arriba.
Ya con esto estamos listos. Ejecutar el Xming, que vendría a ser algo como el "intermediario", y luego el putty para conectarse al sitio en el que trabajarán.
Para probar ejecuten algún programa rápido como la calculadora o algún calendario.

Luego de tanta maravilla hay que hacer un recordatorio, al ejecutar de esta forma estamos aumentando el tráfico en la red por lo que algunas cosas pueden demorarse en cargar o verse un poco lentas, dependiendo de la velocidad de la red utilizada esto puede ser normal: a red con mayor velocidad, menor tiempo de respuesta de los programas (se ven casi en tiempo real).

Ya tenemos funcionando lo que queríamos... ahora a probar! :D

Referencias:
Putty - download
Xming - download

Recuperar archivos borrados

Más de alguna vez nos ha pasado que por error borramos archivos que no deberíamos. Ayer me pasó que sin querer borré del notebook un respaldo de todas las fotos que había tomado con la cámara en los últimos paseos (muchas fotos ^^U) , después del espanto inicial me puse en campaña de recuperarlas directamente desde la memoria de la cámara, desde donde ya las había borrado también... así que manos a la obra :P
Cuando de recuperación de archivos se trata, por lo general ocupo el programa "PC Inspector File Recovery" (ver enlace de referencia más abajo) el cual siempre me ha ayudado, especialmente con aquellos discos que ni el sistema operativo reconoce. Como en este caso estaba algo apurada y no quería instalar nada, encontré un programa que no necesita instalación, perfectamente se puede usar desde el computador o desde un pendrive, hablo del "DiskDigger". Es una versión reducida del programa que utilizo siempre, pero no se queda atrás en lo que a su función se trata "busca, encuentra y guarda" fácil y sencillo :D
Para utilizar este programa sólo se debe descargar, ejecutar y seguir los pasos:

1) Indicar qué disco debe analizar (en mi caso era la tarjeta de memoria de la cámara), 
2) Seleccionar el tipo de búsqueda. Si la búsqueda rápida (primera opción) no resulta, ir con la segunda, corresponde a una búsqueda profunda. El único detalle de la opción de búsqueda profunda es que los nombres de los archivos serán del tipo "sectorxxxx.xxx"... hay que tener en mente que "antes que perder el archivo es mejor que nada" xD.
3) Esperar que termine la búsqueda, seleccionar los archivos que se quieren guardar y presionar el botón para guardar.

Eso sería todo, archivos recuperados y contentos nuevamente :D

Algunas recomendaciones cuando se borran archivos y quieren recuperarlos:

- Si el archivo eliminado está en el disco duro del computador, conviene "NO" instalar nada y tratar de no ejecutar programas para no crear nuevos archivos, esto para evitar que se sobreescriba la parte del disco donde estaba guardado el archivo borrado. En caso de que suceda la desgracia de que el sistema operativo ocupe todo o parte del sector de memoria donde estaba el archivo que se borró, no es muy probable que se pueda recuperar el archivo :(. Por lo anterior, hay que escanear el disco desde otro computador para evitar perder algo ;)

- Si el archivo eliminado está en el disco duro del computador y no tenemos opción de escanearlo desde otro lado, tratar de instalar un programa de recuperación de archivos apenas ocurre el problema y escanear de forma inmediata. A menor tiempo de espera y uso del computador, mayor son las probabilidades de recuperar lo que queremos :).

NOTA:
Ahora que buscaba info de los programas que menciono, acabo de notar que el "PC Inspector File Recovery" sólo funciona hasta Windows XP, lo he instalado sólo en ese sistema operativo así que no puedo complementar mucho al respecto. El "Disk Digger" lo probé en Windows 7 y funcionó sin problemas ;)

Referencias:
PC Inspector File Recovery
DiskDigger
-