
Biblioteca de compresión, descompresión y codificación en Base64.
Implementado en el lenguaje Delphi, utiliza el concepto de interfaz fluida para guiar el uso de la biblioteca.
La biblioteca se desarrolló utilizando clases de compresión y descompresión nativa (ZLIB) y la codificación de Delphi Base64.
Base64 : clase de compresión y codificación base y decodificación de base y decodificación y descompresión.
Data : Clase de compresión y descompresión de datos.
Algoritmo de compresión implementado:
DeflateGZipNota: Las funciones siempre devuelven un MD5 antes de codificar y MD5 después de la codificación, que puede usarse para garantizar que un texto en particular haya sido decodificado correctamente y validándose con el MD5 generado antes de la codificación.
Marco de compresión y descompresión con la opción de codificación Base64.
Compresión de texto:
Compresión de imagen
Mapa de bits
PNG, JPG
Estos tipos de archivos ya han sufrido un proceso de compresión en su creación, el resultado de una nueva compresión no es tan significativo.
En la aplicación de demostración, hay un ejemplo de compresión de imagen PNG de formato, con un total de 42,436 bytes:
Algoritmo de compresión: desinflar
Usando el jefe (Manager de dependencia para Delphi) es posible instalar la biblioteca automáticamente.
boss install github.com/antoniojmsjr/ZLibFramework
Proyecto> Opciones> Compilador Delphi> Target> Todas las configuraciones> Ruta de búsqueda
..ZLibFrameworkSource
uses ZLibFramework, ZLibFramework.Types; var
lResultCompress: IZLibResult;
lMsgError: string;
begin
try
lResultCompress := TZLib
.Base64
.Compress
.Deflate
.Level(TZLibCompressionLevelType.Max)
.Text( ' 1234567890 ' );
Application.MessageBox(PWideChar(lResultCompress.TextUTF8), ' C O M P R E S S Ã O ' , MB_OK + MB_ICONINFORMATION);
except
on E: EZLibException do
begin
lMsgError := Concat(lMsgError, Format( ' Mode: %s ' , [E.Mode.AsString]), sLineBreak);
lMsgError := Concat(lMsgError, Format( ' Operation: %s ' , [E.Operation.AsString]), sLineBreak);
lMsgError := Concat(lMsgError, Format( ' Algorithm: %s ' , [E.Algorithm.AsString]), sLineBreak);
lMsgError := Concat(lMsgError, Format( ' Encoding Fail: %s ' , [BoolToStr(E.EncodingFail, True)]), sLineBreak);
lMsgError := Concat(lMsgError, Format( ' Message: %d ' , [E.Message]), sLineBreak);
lMsgError := Concat(lMsgError, Format( ' Hint: %s ' , [E.Hint]));
Application.MessageBox(PWideChar(lMsgError), ' A T E N Ç Ã O ' , MB_OK + MB_ICONERROR);
end ;
on E: Exception do
begin
Application.MessageBox(PWideChar(E.Message), ' A T E N Ç Ã O ' , MB_OK + MB_ICONERROR);
end ;
end ;
end ;
ZLibFramework es un software gratuito y de código abierto con licencia bajo el