domingo, 13 julio 2008

Thumbs en condiciones: como en Gmail y Facebook

por Fernando Plaza en , ,

Había algo de nuestro CMS que me llevaba asqueando desde hace bastante tiempo: la generación de thumbs... asi que hemos mejorado el sistema, aquí explico cómo funciona y cómo está programado.

Allá por febrero de 2006 programamos una mini-aplicación que capturaba la primera foto del posts y la dividía en pequeñas cuadrículas, entonces tu elegías el trozo que más te gustaba y esa era tu thumb. Todo lo espliqué en un post que titulé Las thumbnails más rápidas a este lado del Mississippi... en su momento estaba muy orgulloso.

Por desgracia la Ley de Murphy parece aplicarse con mucha frecuencia en esto de las thumbs y era bastante frecuente que el cuadrado no cayese en el mejor sitio: cortaba un trozo de cara, dejaba fuera una oreja... 

Así que hemos evolucionado, ahora -como se puede ver en la imagen- se captura la primera imagen del post y se muestra un recuadro sobre ella que mantiene las proporciones que tendrá la thumb final.

El recuadro se puede mover y cambiar de tamaño, una vez que tienes las coordenadas del corte puedes pulsar en "Probar" y te muestra el resultado y cuando estás convencido le das a "Guardar"... a partir del primer corte el programa te genera tres thumbs en distintos tamaños y pasa al siguiente post automáticamente.

Calculo que puedes hacer con facilidad unas 10 thumbs por minuto, por lo que el proceso de publicación no se ralentiza. Los nuevos tamaños de las thumbs son: 120 x 90 pixels (antes era 120 x 120 pixels), 70 x 53 pixels (nuevo), 50 x 38 pixels (antes 50 x 50 pixels)

Como se puede ver hemos aprovechado para cambiar la proporciones de las thumbs y hacerlas apaisadas, que quedan bastante más estéticas que cuando eran cuadradas.

Programación

Para poder hacer esto hemos utilizado el excelente script programado por Angus Turnbull DragResize 1.0. Básicamente es un js que te permite animar un DIV, cambiándolo de tamaño y posición, en principio la redimensión es totalmente libre y no puedes mantener un ratio de proporciones, pero en el foro encontramos una modificación del código que si te permite restringir las proporciones: algo esencial para las thumbs.

El div se deja transparente y se coloca una foto alineada con él desde el punto 0,0. De esa manera cuando mueves el DIV las coordenadas coinciden con las de la foto.

Con una función javascript recuperas los valores del DIV cada vez que dejas de moverlo, esas serán las pautas de corte que tendrás que aplicar a la foto. Para este último paso nosotros usamos AspJpeg, aunque supongo que habrá programas similares y gratuitos en PHP y demás.

Puedes ver como funciona aquí >>

En el ejemplo no está la parte del corte, pero si está hecha la parte `más creativa´... la de Angus Turnbull :-) 

Otras aplicaciones

Esto resulta imprescindible para los avatares de los usuarios, algo que ya teníamos hecho y que ahora vamos a actualizar, visto que por mucho que adviertas que la foto debe ser de 70x70 pixeles, el personal termina subiendo fotos de 3 megas y de todos los tamaños...

Asi que esto viene muy bien para que si alguien sube una foto que no cuadra con el tamaño solicitado le puedas mostrar una sencilla pantalla donde podrá recortar el mismo su foto on-line: igual que en Gmail, Facebook y otras redes sociales.

Nota mental - aprender mucho Javascript, convertirme en Angus Turnbull



Adios Blogger... fue bonito mientras duró
Adios Blogger... fue bonito mientras duró
Nada como aprovechar el fin de semana para tomar decisiones drásticas e irreversibles. Finalmente dejamos de utilizar por completo Blogger para publicar nuestros blogs y pasamos a manejarlo todo con nuestro propio CMS (que además es mucho mejor)... y por...

Mejoras en nuestro CMS
Mejoras en nuestro CMS
Muy pronto todos nuestros escritores empezarán a publicar con nuestra propia aplicación.Hasta el momento utilizaban Blogger para subir sus posts y posteriormente nosotros importábamos todos sus artículos automáticamente.Era un proceso rápido, pero un...

Google Custom Search Business Edition en TopMadrid
Google Custom Search Business Edition en TopMadrid
Nos faltó tiempo para instalar el nuevo Google Custom Search Business Edition, que nos permite añadir el buscador de Google a nuestra página por un precio muy razonable (100 $ al año) y lo más importante sin anuncios.|Más allá de los menús, pestañas y...

Un lenguaje de programación para el 2007
Un lenguaje de programación para el 2007
En ENZO todos los desarrollos funcionan con páginas ASP programadas en Vbscript. El Vbscript fue en su momento extremadamente popular y muy fácil de aprender para aquellos que sabíamos algo de Visual Basic.Lamentablemente el Vbscript hace mucho que dejó...

En portada