Archivo de la etiqueta: unix

Modificar y renombrar imagenes en un directorio remoto desde la linea de comandos

Muchos trucos hay para hacer trabajos en lotes, pero cuando lo tienes que hacer en un servidor remoto (por ejemplo donde tienes hospedada la web) no puedes utilizar Automator, ni Better Finder renamer, ni ninguna de esas aplicaciones bonitas que tenemos en nuestro ordenador, solo disponemos de una consola y nuestros conocimientos de la linea de comandos, vamos a plantear un supuesto, tenemos en un directorio un numero indeterminado de imágenes con espacios en los nombres y deseamos renombrarlos de forma serializada en un primer lugar, posteriormente los vamos a dejar todos en un tamaño igual (800×600 por ejemplo) y posteriormente los vamos a copiar a un directorio de miniaturas (thumbs) donde procederemos a generar las minaturas.

1.- Quitar los espacios en blanco de los nombres

Para ello vamos a crear un fichero de texto al que vamos a llamar quitaespacios.sh

nano -w quitaespacios.sh

Si no dispones de nano, puedes utilizar pico, vim o cualquier otro programa de edición en modo de consola, tambien me sirve que lo escribas en tu ordenador y lo subas via ftp, pero como el tema va de comandos de consola, vamos a suponer que utilizas nano y dentro de el vas a pegar el siguiente código.

#!/bin/sh
find . -name ‘* *’ | sort | while read FILE
do
NEWFILE=`echo ${FILE} | sed ‘s/ /_/g;’`
mv «${FILE}» ${NEWFILE}
echo ${NEWFILE}
done

Después le damos permisos y desde el directorio que lo queramos ejecutar, lo ejecutamos o lo que seria

chmod 755 quitaespacios.sh
chmod +x quitaespacios.sh
./quitaespacios.sh

Y simplemente relajare y disfruta mientras lee secuencialmente todos los nombres de los ficheros en el directorio y sustituye los espacios en blanco por _ solucionando el problema con muchos servidores webs que no soportan que los nombres de ficheros lleven espacios en blanco.

Esta idea esta sacada de esta web

2.- Renombrar los ficheros secuencialmente.

Esto os va a dejar actualizados porque se hace con solo una linea de comandos

ls *.jpg | awk ‘BEGIN{a=0}{printf»mv %s -T cambialo_%04d.jpg\n», $0, a++}’ | bash

Donde cambialo es el nombre de la serie y jpg es la extension del fichero que quieres renombrar es decir si la serie quieres que sea fotos_de_mallorca pon eso donde pone cambiado y si lo que renombras son ficheros png doc o lo que sea donde pone jpg pon esa extensión.

3.- Redimensionar las imágenes

Si tienes un directorio lleno de imágenes, te las puedes bajar todas y procesarlas en un proceso batch en Photoshop y luego subirlas todas, es un proceso engorroso y con las ADSL de aquí resubir un directorio con 100, 300 o 1000 fotos puede ser un autentico coñazo y mas si tenemos en cuenta que se puede hacer en linea, con una sola linea de comando que seria algo así.

mogrify -monitor -resize 800×600 *.jpg

lo cual basicamente lo que hace es coger todos los jpg del directorio en cuestión y modificarlos a tamaños de 800×600 o equivalentes manteniendo la proporción, mogrify es un comando de ImageMagick y suele estar instalado en todos los servidores web el -monitor lo que hace es que la transformación vaya mostrando progreso en la pantalla de forma que se vea que esta haciendo algo.

4.- Crear las miniaturas de dichas imágenes

Lo que vamos a hacer es muy simple vamos a crear un directorio (miniaturas) le vamos a dar permisos para que sea visto en el servidor web y luego vamos a crear las miniaturas.

make miniaturas
chmod 755 miniaturas
cp *.jpg miniaturas/
cd miniaturas
mogrify -monitor -resize 160×120 *.jpg
mv *.jpg -T miniaturas_*.jpg

Basicamente creamos directorio, le damos permisos, hacemos una copia del contenido del directorio en el directorio de miniaturas, nos metemos en el directorio de miniaturas, cambiamos el tamaño y renombramos el fichero para que sepamos que es una miniatura… y proceso terminado.

Este proceso es muy util con pequeñas modificaciones para subir grandes cantidades de imágenes a las galerías de fotos de las webs, si te ha gustado o si tienes alguna duda sobre el mismo simplemente deja un comentario.

Bulmages en OSX

Bulmages es un proyecto de la asociacion iglues, desde hace tiempo (desde que yo migre a mac :D) llevo dando la paliza para que aprovechando las librerias en las que esta basado el proyecto crear versiones para mac y para windows, en la actualizad, los cambios hacia cmake han hecho esto no solo posible sino bastante facil.

1º Instalar las Xcode que vienen con tu DVD.

2ª Instalar Macports en el siguiente enlace teneis los instaladores para distintas versiones de macosx

http://svn.macports.org/repository/macports/downloads/MacPorts-1.6.0/

Una vez instalado en la consola teclear.

sudo port –d selfupdate (esto crea la estructura de macports)

sudo port –d install qt-mac (esto instala las librerí­as qt para mac)

sudo port install postgresql82 postgresql82-server (esto instala la base de datos postgresql)

Estos procesos requieren un tiempo porque bajaran los fuentes de estas aplicaciones y sus dependencias para compilarlas nativas para tu equipo.

3ª Configurar postgresql

En la consola teclear.

$ sudo mkdir -p /opt/local/var/db/postgresql82/defaultdb
$ sudo chown postgres:postgres /opt/local/var/db/postgresql82/defaultdb
$ sudo su postgres -c ‘/opt/local/lib/postgresql82/bin/initdb -D /opt/local/var/db/postgresql82/defaultdb’

Esto crea el espacio donde se va a usar la base de datos y da los permisos de uso etc etc

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.postgresql82-server.plist

Esto hace que postgresql se active cada vez que arranques el ordenador

sudo vi /etc/profile (con esto arrancas un editor de texto muy simple el vi para modificar el fichero pero arranca el que quieras y añade al final)

PATH=»/bin:/sbin:/usr/bin:/usr/sbin:/opt/local/lib/postgresql82/bin»

Cierra el terminal y abre uno nuevo para que coja los cambios.

Escribe en la nueva consola

$ which psql (escribe esto y te saldra esto)

/opt/local/lib/postgresql82/bin/psql

Ya tienes tu entorno preparado.

Ahora nos vamos a por el programa en la misma consola

mkdir /Users/Shared/bulmages
cd /Users/Shared/bulmages

svn checkout http://svn.berlios.de/svnroot/repos/bulmages/trunk (este comando te bajara todo el repositorio de bulmages, que incluye documentacion y muchas cosas mas)
cd trunk/

mkdir build
cd build (creas el directorio para realizar la compilación y entras en el)

cmake ../ (si no tienes cmake instalado sudo port –d install cmake)

Esto importara a este directorio las fuentes y aquí­ te generara el instalador

make (se tirara una media hora compilando depende de tu maquina)

make install (ya tienes el programa instalado)

cd /usr/local/share/bulmages

sudo ./installbulmages-db (este programa en modo texto te crea la conexión con la base de datos y da permisos al usuario que tu le digas para trabajar)

bulmages (esto te iniciara un selector para poder elegir en que aplicación entrar)

si no te arranca revisa el path por si no se ha puesto correctamente también lo puedes ejecutar como

/usr/local/bin/bulmages (selector)
/usr/local/bin/bulmafact (facturacion)
/usr/local/bin/bulmacont (Contabilidad)

Estoy trabajando en paquetes binarios para instalar… ya los tengo pero me falta probarlos en cuanto los tenga los subire a la web.