Visto 862 veces.

AS3 – Algoritmo JVM en as3 y php de compresión y descompresión de documentos html generados por as3

En esta ocasión comparto una librería o algoritmo que hice hace tiempo para comprimir documentos de gran tamaño.

El algoritmo jvm (Si, le puesto mis iníciales soy así de hortera) puede utilizarse con cualquier documento, pero es más eficiente con código HTML generado desde AS3, aunque es posible optimizarlo para otros sustituyendo en el array manualMath las cadenas especificas que se repiten con más frecuencia en los tipos de documentos que vayamos a comprimir, por ejemplo en el HTML generado por AS3 suelen ser las siguientes FONT, TEXTFORMAT, KERNING etc.

Si se comprimen textos muy pequeños el resultado será prácticamente el mismo e incluso mayor que el original, esto es normal ya que el resultado se aprecia cuanto más grande es el texto sobre todo si se trata de código HTML de AS3.

También comprimiría mas si utilizase más símbolos pero me encontré problemas con las codificaciones que no supe resolver y finalmente utilice unos pocos símbolos que supuestamente no dan problemas.

En el ejemplo podéis ver el código HTML de un documento de una sola página que ocupa unos 9.409 caracteres, el documento en si es poca cosa pero el HTML infla el tamaño considerablemente, pues bien el compresor realiza una compresión de 9.409 a 3.478 esto viene a ser una compresión superior al 50% del documento original. Gracias al compresor pude tratar y guardar en la base de datos gran cantidad de documentos de más de 30 páginas en HTML con más de 300.000 caracteres cada uno con un coste de procesamiento minimo.

Se me ocurre que también podría servir para encriptar texto, eso sí, sin clave pero se podría implementar.

Por ejemplo aquí abajo vemos el resultado de encriptar una frase.


Con diez cañones por banda viento en popa a toda vela no corre si no vuela un velero bergantín. (Bricobit)
þel,ý co,ü da,û en,ú er,ù ie,ø an,÷ no,ö on,õ or,ô po,ó to,òþÿCõ døz cañões pô b÷û viúò ú ópa a òû výa ö ürre si ö vuýa un výùo bùg÷tín. (Briübit)


Bueno no sé si llamarlo encriptar, cifrar o codificar pero da igual, el tema es que en un principio el algoritmo nunca establecerá la misma sustitución de caracteres, es decir no siempre cambiara por ejemplo una A por un *, si no que dependiendo de cada documento puede variar, eso sí un mismo documento siempre se codificara igual, pero con otro lo hará diferente por la lógica de que es un documento diferente y eso le otorga aleatoriedad en la sustitución de caracteres.

Saludos!!!.

Ejemplo: (Puedes introducir aquí otros textos o documento como HTML normal para probar el nivel de compresión, una vez comprimido también podrás editar el texto comprimido para introducir otros texto para descomprimir)

This movie requires Flash Player 9

 
Clase as3 JVM.as

Utilización:

Tambien es posible indicar dos funciones para saber cuando se inicio la compreison o descompresion y cuando se termino

Clase homologa en php JVM.php

Su uso es el mismo que en as3 pero no tiene las mejoras de poder especificar las funciones para saber cuando empezo la compresion o descompresion y cuando termino.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">