Mostrando entradas con la etiqueta GIF. Mostrar todas las entradas
Mostrando entradas con la etiqueta GIF. Mostrar todas las entradas

miércoles, 10 de junio de 2009

Tamaño de imágenes

La utilidad de menor tamaño que he encontrado para conocer al ancho y alto de las imágenes (PNG, GIF, JPEG, XPM) es image_size

Trivial de compilar para Cygwin:
gcc image_size.c -s -o image_size

O para Windows:
gcc -mno-cygwin image_size.c -s -o image_size

Para usarlo, basta pasar los nombres de los ficheros, y nos devuelve el nombre y dimensiones de cada uno:
image_size *.png *.gif
demoin.png: 128 128
demoin.gif: 128 128

domingo, 17 de mayo de 2009

Cortando y pegando GIFs (III)

Recordemos que queremos pasar el ancho de 960 a 740, así que el aumento de ancho es 960-740=220

Mientras que el GIF de cabecera es 740x8, el de las entradas es 485x15, por lo tanto:
  • el tamaño del trozo curvo es 15x15.
  • la posición del trozo curvo derecho 485-15=470
  • nuevo ancho de entradas 485+220=705
  • nueva posición del trozo curvo derecho 485+220-15=590

Con esto generamos los nuevos GIFs de las entradas:
for i in top bot
do
img=corners_main_$i
gifsicle --same-background --crop 0,0+15x15 $img.gif --crop 470,0+15x15 --p 590,0 $img.gif | gifsicle -U "#1" > ${img}705.gif
done


Hay otro GIF para hacer una línea vertical a ambos lados de las entradas, de 485x10.
  • el tamaño del trozo significativo es 10x10.
  • la posición del trozo significativo derecho 485-10=475
  • nuevo ancho de entradas 485+220=705
  • nueva posición del trozo curvo derecho 485+220-10=695
Con esto generamos el nuevo GIF:
img=rails_main
gifsicle --same-background --crop 0,0+10x10 $img.gif --crop 475,0+10x10 --p 695,0 $img.gif | gifsicle -U "#1" > ${img}705.gif


Y ya tenemos todos los GIFs. Falta subirlos a algún sitio de la Web. Si tienes ADSL, tu proveedor te suele dar entre 10 y 100 MB de espacio. Para subirlos, se puede usar el cliente ftp que venga con tu sistema operativo, wput, o FileZilla.

lunes, 11 de mayo de 2009

Cortando y pegando GIFs (II)

Vamos a probar con gifsicle.

Cortamos la esquina de la izquierda y la de la derecha (740-8=732):
gifsicle --same-background --crop 0,0+8x8 corners_cap_top.gif > corners_cap_top_left8.gif
gifsicle --same-background --crop 732,0+8x8 corners_cap_top.gif > corners_cap_top_right8.gif


Y luego las ponemos en sus nuevas posiciones (960-8=952):
gifsicle corners_cap_top_left8.gif --p 952,0 corners_cap_top_right8.gif | gifsicle -U "#1" > corners_cap_top960.gif

También podemos hacer todo en una única línea, sin ficheros intermedios:

gifsicle --same-background --crop 0,0+8x8 corners_cap_top.gif --crop 732,0+8x8 --p 952,0 corners_cap_top.gif | gifsicle -U "#1" > corners_cap_top960.gif

Y como tenemos que hacerlo con las esquinas de arriba y las de abajo:
for i in top bot
do
img=corners_cap_$i
gifsicle --same-background --crop 0,0+8x8 $img.gif --crop 732,0+8x8 --p 952,0 $img.gif | gifsicle -U "#1" > ${img}960.gif
done

sábado, 2 de mayo de 2009

Cortando y pegando GIFs (I)

Resulta que Internet Explorer 6 no entiende los PNG con transparencias, excepto usando trucos realmente inmundos.

Así que tenemos usar GIF, un formato algo anticuado pero que entiende todo el mundo, para por ejemplo las esquinas redondeadas de esta plantilla de Blogger.

Los GIFs se pueden manipular con Irfanview, MS Paint, Paint.NET, GIMP, etc. pero aquí usamos la línea de comando.

Podemos usar ImageMagick, como explican aquí.

Pero aquí buscamos la utilidad de menor tamaño que permita realizar la tarea. Veamos giflib.

La tarea es ensanchar el GIF de cabecera, de 740x8 a 960x8.

Separamos la esquina redondeada izquierda, y la derecha:

gifclip -i 0 0 7 7 corners_cap_top.gif | gifpos -s 960 8 > corners_cap_top_left8.gif
gifclip -i 732 0 739 7 corners_cap_top.gif | gifpos -s 960 8 -i 952 0 > corners_cap_top_right8.gif


Cogemos un trocito de en medio, y lo ensanchamos hasta 960 -8 -8= 944:

gifclip -i 8 0 125 7 corners_cap_top.gif | gifrsize -x 8 | gifpos -s 960 8 -i 8 0 > corners_cap_mid944.gif


Y juntamos todo:

gifasm corners_cap_top_left8.gif corners_cap_mid944.gif corners_cap_top_right8.gif > multi.gif

GIF-LIB error: Wrong record type detected.


Vaya, hombre, giflib no entiende los GIFs que genera ella misma.
Habrá que usar otra cosa.

domingo, 26 de abril de 2009

GIFs animados comprimidos

Un poco de Google y encuentro esta utilidad para manipular GIFs.
Trivial de compilar en Cygwin:
./configure --disable-gifview
make
strip src/*.exe
make install


Sólo depende de la biblioteca estándar de C, así que también es trivial compilarlo para Windows:

make distclean
CC=gcc-3 CFLAGS=-mno-cygwin ./configure --disable-gifview
make
strip src/*.exe
make install


Y el comando mejorado para crear GIFs animados se queda en:

ffmpeg -i avión.wmv -r 10 -vframes 50 -f gif -pix_fmt rgb24 -s 80x60 - |gifsicle -O2 > avión.gif

viernes, 24 de abril de 2009

GIFs animados

Hay montones de herramientas para generar GIFs animados.
Y FFmpeg también puede crearlos.

No es el mejor en cuanto a la calidad resultante (no busca la paleta de colores óptima), ni cuanto a espacio (los GIF que produce no están comprimidos), pero sí es el que más formatos de entrada admite.

La situación puede mejorar pronto, porque en marzo se apuntó un voluntario para crear GIFs comprimidos.

Y ahora, un ejemplo de cómo convertir a GIF animado:

ffmpeg -i avión.wmv -r 10 -vframes 50 -f gif -pix_fmt rgb24 -s 80x60 avión.gif