Catalog · How the catalog works
Base64Lib
⚡ Biblioteca de codificação e decodificação de dados em Base64.
- ★ 23 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
</br>
</br>
</br>
Base64Lib
Base64Lib é uma biblioteca de codificação e decodificação de dados em Base64.
Implementado na linguagem Delphi, utiliza o conceito de fluent interface para guiar no uso da biblioteca, oferece uma interface simples e intuitiva, facilitando a codificação e decodificação em Base64, abrangendo desde a manipulação de strings até a conversão de tipos complexos.
Essa biblioteca é ideal para desenvolvedores Delphi que buscam uma solução robusta, flexível e eficiente para codificação e decodificação de dados em Base64.
Para mais informações, consultar Wiki.
Recursos
- Facilidade de Integração: Com uma interface amigável e documentação detalhada, a Base64Lib é fácil de integrar em qualquer projeto.
- Flexibilidade: Base64Lib suporta diferentes tipos de dados, abrangendo desde
stringsaté tipos complexos(TBitmap,TPicture,TStream,TBytese etc.), permitindo uma ampla gama de aplicações, desde comunicação entre sistemas até armazenamento. - Exemplos de uso: Repositório com diversos exemplos de uso da biblioteca, por exemplo, VCL, FMX e um servidor de aplicação em Horse. </br>
[!WARNING]
Para os projetos em Firemonkey definir a diretiva de compilaçãoHAS_FMXem conditional defines:
⚙️ Instalação Automatizada
Utilizando o Boss (Dependency manager for Delphi) é possível instalar a biblioteca de forma automatizada.
boss install https://github.com/antoniojmsjr/Base64Lib⚙️ Instalação Manual
Se você optar por instalar manualmente, basta adicionar as seguintes pastas ao seu projeto, em Project > Options > Delphi Compiler > Target > All Configurations > Search path
..\Base64Lib\Source⚡️ Uso da biblioteca
Os exemplos estão disponíveis na pasta do projeto:
..\Base64Lib\SamplesCodificação
Uses
Base64Lib;Text >> Base64
var
lEncode: IEncodeParse;
lBase64: string;
lBase64Size: Int64;
lBase64MD5: string;
begin
lEncode := TBase64Lib
.Build
.Encode
.Text('Base64Lib');
lBase64 := lEncode.AsString;
lBase64Size := lEncode.Size;
lBase64MD5 := lEncode.MD5;
end;Image >> Base64
var
lEncode: IEncodeParse;
lBase64: string;
lBase64Size: Int64;
lBase64MD5: string;
begin
lEncode := TBase64Lib
.Build
.Encode
.Image(Timage.Picture); // VCL
lEncode := TBase64Lib
.Build
.Encode
.Image(Timage.Bitmap); // FMX
lBase64 := lEncode.AsString;
lBase64Size := lEncode.Size;
lBase64MD5 := lEncode.MD5;
end;Decodificação
Base64 >> Text
var
lDecode: IDecodeParse;
lText: string;
lSize: Int64;
lMD5: string;
begin
lDecode := TBase64Lib
.Build
.Decode
.Text('QmFzZTY0TGli');
if not Assigned(lDecode) then
Exit;
lText := lDecode.AsString;
lSize := lDecode.Size;
lMD5 := lDecode.MD5;
end;Base64 >> Image
VCL
var
lDecode: IDecodeParse;
lPicture: TPicture;
lSize: Int64;
lMD5: string;
begin
lDecode := TBase64Lib
.Build
.Decode
.Text('QmFzZTY0TGli');
if not Assigned(lDecode) then
Exit;
lPicture := lDecode.AsPicture;
try
TImage1.Picture.Assign(nil);
TImage1.Picture.Assign(lPicture);
finally
lPicture.Free;
end;
lSize := lDecode.Size;
lMD5 := lDecode.MD5;
end;FMX
var
lDecode: IDecodeParse;
lBitmapStream: TStream;
lBitmap: TBitmap;
lItem: TCustomBitmapItem; // FMX - Unit FMX.MultiResBitmap
lRect: TRect; // FMX
lSize: Int64;
lMD5: string;
begin
lDecode := TBase64Lib
.Build
.Decode
.Text('QmFzZTY0TGli');
if not Assigned(lDecode) then
Exit;
lBitmap := lDecode.AsBitmap;
try
lRect := TRect.Create(TPoint.Zero);
lRect.Left := 0;
lRect.Top := 0;
lRect.Width := lBitmap.Bounds.Width;
lRect.Height := lBitmap.Bounds.Height;
TImage1.MultiResBitmap.Clear;
lItem := TImage1.MultiResBitmap.ItemByScale(1, False, True);
lItem.Bitmap.Width := lBitmap.Bounds.Width;
lItem.Bitmap.Height := lBitmap.Bounds.Height;
lItem.Bitmap.CopyFromBitmap(lBitmap, lRect, 0, 0);
finally
lBitmap.Free;
end;
OU
lBitmapStream := lDecode.AsStream;
try
TImage1.MultiResBitmap.Clear;
lItem := TImage1.MultiResBitmap.ItemByScale(1, False, True);
lItem.Bitmap.LoadFromStream(lBitmapStream);
finally
lBitmapStream.Free;
end;
lSize := lDecode.Size;
lMD5 := lDecode.MD5;
end;▶️ Exemplo compilado
Exemplo Base64LibApp
..\Base64Lib\Samples\Base64LibApp\https://github.com/user-attachments/assets/eb4e2e51-c590-47de-b03b-68b48083c92c
Exemplo FMX
..\Base64Lib\Samples\Bitmap\FMX\https://github.com/user-attachments/assets/222719ca-8b65-4297-b3b4-c654ca0b2114
Servidor REST(VCL)
..\Base64Lib\Samples\Bitmap\VCL\https://github.com/user-attachments/assets/2a2b3cd5-5720-456e-a900-5b8c1117dc06
⚠️ Licença
Base64Lib is free and open-source software licensed under the



