Bueno, este es un pequeño script medio extraño (no pregunten como funciona) que permitirá ejecutar código lua (con sus respectivos tags <%lua //codigo %> al estilo php) dentro de los html. Ello significa que no requieren de un servidor con soporte php para crear páginas dinámicas que su propio servidor programado en lua puede generar.
Un ejemplo del código es el siguiente:
<%lua usuario='pepe' %>
Hola <%lua echo(usuario) %>
<%lua for x=1, 10 do
echo("lo:"..x.."\n")
end %>
<%lua for x=1, 10 do %>
this is loop: <%lua echo(x); %>;
<%lua end %>
Como verán este código HTML con lua tags usa tanto los tags normales como los que el php nos permite usar en loops y declaraciones condicionales combinando todo.
Un ejemplo de cómo utilizar este script con el anterior código es este:
local s = [[<%lua usuario='pepe' %>
Hola <%lua echo(usuario) %>
como estas
<%lua for x=1, 10 do
echo("lo:"..x.."
")
end %>
<%lua for x=1, 10 do %>
this is loop: <%lua echo(x); %>
<%lua end %>]];
print(ExecuteLuaTags(s,"html.html"));
- El código lo he puesto en una variable de tipo string llamada s
- Enviamos dicha variable a la función ExecuteLuaTags junto con una ruta al archivo final que se generará
- El resultado lo imprimimos y como verán es sólo un valor true en caso satisfactorio o nil + errormsg en caso contrario
- Utilice pcall para evitar broncas con el código mal hecho
Aca una imagen del resultado visto en el navegador web (html resultante) del anterior script:
Y sin mayor preámbulo aca les dejo el link al script en pastebin: http://pastebin.com/VGyjSBV4
lunes, 28 de noviembre de 2011
jueves, 17 de noviembre de 2011
Redimensionar manteniendo proporción
Este tema es básico en extremo pero he decidido publicarlo porque he notado que siguen existiendo errores al realizar esta operación de redimensión.
Es común ver bastantes fórmulas para redimensionar imágenes (por ejemplo cuando se quiere crear una imagen miniatura/thumbnail), o cualquier otro plano 2d, pero muchas de ellas no calculan la redimensión para mantener la proporción. He visto que los autores de otras fórmulas que sí mantienen la proporción son un tanto complejas y no muy claras (con código innecesario) e incluso llegan a fallar o recortar la imagen/plano resultando en algo no deseado. Así que les dejo la fórmula en Lua (pero fácilmente puede ser traducida a otros lenguajes como php, etc) para obtener los el nuevo tamaño de imagen/plano manteniendo el aspecto:
Como podrán ver la fórmula es simple porque primero debemos determinar cual de las 2 dimensiones (altura ó ancho) del plano es la mayor y de ahi crear un divisor de proporción.
Posteriormente dicho divisor de proporción es utilizado para obtener el nuevo alto y ancho del plano, apoyándonos de un redondeo al entero próximo mayor del resultado.
Con ésta fórmula no tendrán inconveniente alguno que incluso funcionará con dimensiones menores a las del thumbnail/miniatura creciendo el plano. Pero si quieren evitar que en dicho caso se agrande el plano entonces sólo deben editar la formula/código anterior quedando de la siguiente forma:
Es común ver bastantes fórmulas para redimensionar imágenes (por ejemplo cuando se quiere crear una imagen miniatura/thumbnail), o cualquier otro plano 2d, pero muchas de ellas no calculan la redimensión para mantener la proporción. He visto que los autores de otras fórmulas que sí mantienen la proporción son un tanto complejas y no muy claras (con código innecesario) e incluso llegan a fallar o recortar la imagen/plano resultando en algo no deseado. Así que les dejo la fórmula en Lua (pero fácilmente puede ser traducida a otros lenguajes como php, etc) para obtener los el nuevo tamaño de imagen/plano manteniendo el aspecto:
function resize(w,h,t_w,t_h) local divisor_proporcion = (w>h) and w/t_w or h/t_h; local new_width = math.ceil(w/divisor_proporcion); local new_height = math.ceil(h/divisor_proporcion); return new_width, new_height; end
local thumb_width = 100; local thumb_height = 100; local image_width = 350; local image_height = 491;
local new_w,new_h = resize(image_width, image_height, thumb_width, thumb_height); print(new_w,new_h);--imprimirá 72,100
Como podrán ver la fórmula es simple porque primero debemos determinar cual de las 2 dimensiones (altura ó ancho) del plano es la mayor y de ahi crear un divisor de proporción.
Posteriormente dicho divisor de proporción es utilizado para obtener el nuevo alto y ancho del plano, apoyándonos de un redondeo al entero próximo mayor del resultado.
Con ésta fórmula no tendrán inconveniente alguno que incluso funcionará con dimensiones menores a las del thumbnail/miniatura creciendo el plano. Pero si quieren evitar que en dicho caso se agrande el plano entonces sólo deben editar la formula/código anterior quedando de la siguiente forma:
function resize(w,h,t_w,t_h) if w > t_w or h > t_h then local divisor_proporcion = (w>h) and w/t_w or h/t_h; local new_width = math.ceil(w/divisor_proporcion); local new_height = math.ceil(h/divisor_proporcion); return new_width, new_height; else return w,h; end end
lunes, 14 de noviembre de 2011
Ejecutar Javascript desde un iFrame
He visto bastantes scripts donde se complican mucho para ejecutar una función desde un documento desde un iframe. Lo más fácil es:
window.parent.nombredelafuncion();
Pero también funciona con sólo parent.nombredelafuncion();
Hay que recordar probar cada script en los distintos navegadores ó por lo menos en los navegadores más frecuentes como IE, Firefox, Chrome y Safari.
window.parent.nombredelafuncion();
Pero también funciona con sólo parent.nombredelafuncion();
Hay que recordar probar cada script en los distintos navegadores ó por lo menos en los navegadores más frecuentes como IE, Firefox, Chrome y Safari.
sábado, 5 de noviembre de 2011
lua id3 v2.3 tag reader / APIC Extractor & Changer
Bueno, el título esta bastante largo pero ahí vamos. Una parte de este script es una adaptación de otro que hay para linux pero sólo en las funciones que leen los id3tag y extraen la imagen del APIC tag. El resto sno funciones hechas por mí como la que es para calcular el SafeSynch Integer en base a un integer normal y viceversa.
Agradezco a Diaelectronics por su script para convertir de hexadecimal a binario (y viceversa) ya que sin ese script no hubiera podido hacer el resto de las funciones.
El script se puede adaptar para leer y editar el resto de los tags v2.3 ó incluso añadirlos, leer los flag bytes, etc. y es por ello que dejo siempre el código fuente.
Aca el script completo con algunas modificaciones como la de insertar el APIC en caso de no encontrarlo, ó cambiar el APIC en caso de contrario.
http://pastebin.com/TTEaCGME
Adjunto una imagen donde se aprecia un mp3 cualquiera con un nuevo APIC que es un sí una captura de pantalla de un script lua.
Agradezco a Diaelectronics por su script para convertir de hexadecimal a binario (y viceversa) ya que sin ese script no hubiera podido hacer el resto de las funciones.
El script se puede adaptar para leer y editar el resto de los tags v2.3 ó incluso añadirlos, leer los flag bytes, etc. y es por ello que dejo siempre el código fuente.
Aca el script completo con algunas modificaciones como la de insertar el APIC en caso de no encontrarlo, ó cambiar el APIC en caso de contrario.
http://pastebin.com/TTEaCGME
Adjunto una imagen donde se aprecia un mp3 cualquiera con un nuevo APIC que es un sí una captura de pantalla de un script lua.
Suscribirse a:
Entradas (Atom)