Catalog · How the catalog works
ZLibFramework
⚡ Biblioteca de compressão, descompressão e codificação Base64.
- ★ 24 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
ZLibFramework
Biblioteca de compressão, descompressão e codificação em Base64.
Implementado na linguagem Delphi, utiliza o conceito de fluent interface para guiar no uso da biblioteca.</br> Biblioteca desenvolvida utilizando as classes nativas de compressão e descompressão(ZLib) e codificação Base64 do Delphi.
Base64: Classe de compressão e codificação para Base64 e decodificação e descompressão da Base64.Data: Classe somente de compressão e descompressão de dados.
Algoritmo de compressão implementado:
DeflateGZip
NOTA: As funções sempre retornam um MD5 antes da codificação e o MD5 depois da codificação, que podem ser usados para garantir que um determinado texto foi decodificado corretamente e validando com o MD5 gerado antes da codificação.
Para que?
Framework de compressão e descompressão com a opção de codificação em Base64.
- Compressão de textos:
- No aplicativo de demonstração, tem um exemplo de compressão de uma NF-e com 100 itens vendidos, no total de 94.543 caracteres:
Resultado
- Compressão e codificação em Base64: Uma redução de 91.167 caracteres ou 96,42% no seu tamanho.
- Compressão: Uma redução de 92.012 caracteres ou 97,32% no seu tamanho.
- Algoritmo de compressão: Deflate
- No aplicativo de demonstração, tem um exemplo de compressão de uma NF-e com 100 itens vendidos, no total de 94.543 caracteres:
- Compressão de imagens
- Bitmap
- No aplicativo de demonstração, tem um exemplo de compressão de uma imagem no format bitmap, no total de 2.391.674 bytes:
Resultado
- Compressão e codificação em Base64: Uma redução de 645.774 bytes ou 27% no seu tamanho.
- Compressão: Uma redução de 1.082.249 bytes ou 45,25% no seu tamanho.
- Algoritmo de compressão: Deflate
- No aplicativo de demonstração, tem um exemplo de compressão de uma imagem no format bitmap, no total de 2.391.674 bytes:
- PNG, JPG
- Esses tipos de arquivo já sofreram um processo de compressão na sua criação, o resultado de uma nova compressão não é tão significativa.
* No aplicativo de demonstra????o, tem um exemplo de compress??o de imagem no format png, no total de 42.436 bytes: #### Resultado * Compress??o e codifica????o em Base64: Um **aumento** de 13.808 bytes ou **32,53%** no seu tamanho. * Compress??o: Uma **redu????o** de 255 bytes ou **0,60%** no seu tamanho. * Algoritmo de compress??o: Deflate - Bitmap
Instalação Automatizada
Utilizando o Boss (Dependency Manager for Delphi) é possível instalar a biblioteca de forma automática.
boss install github.com/antoniojmsjr/ZLibFrameworkInstalação Manual:
Project > Options > Delphi Compiler > Target > All Configurations > Search path
..\ZLibFramework\SourceUso:
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;Demo

Licença
ZLibFramework is free and open-source software licensed under the


