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.
- 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
strings
até tipos complexos(TBitmap
,TPicture
,TStream
,TBytes
e 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.
Warning
Para os projetos em Firemonkey definir a diretiva de compilação HAS_FMX
em conditional defines:
![IPGeolocation](https://private-user-images.githubusercontent.com/20980984/356828899-db3d20a6-8ee0-4b16-a03c-832bc14561e3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxNDUwNjIsIm5iZiI6MTczOTE0NDc2MiwicGF0aCI6Ii8yMDk4MDk4NC8zNTY4Mjg4OTktZGIzZDIwYTYtOGVlMC00YjE2LWEwM2MtODMyYmMxNDU2MWUzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDIzNDYwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY5Y2EzZDMwODk4NDMwN2E3ZmExOTA4NzEwZGQxMjhkNjUxNjRiNzYzMTMwNTQ5N2UxYTliZTFiODgwZmIwNTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.UE-AeueCYVHHSnRMjx61Eu86NwT-ka2MGG-l2cZoDTo)
Utilizando o Boss (Dependency manager for Delphi) é possível instalar a biblioteca de forma automatizada.
boss install https://github.com/antoniojmsjr/Base64Lib
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
Os exemplos estão disponíveis na pasta do projeto:
..\Base64Lib\Samples
Uses
Base64Lib;
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;
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;
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;
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;
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;
..\Base64Lib\Samples\Base64LibApp\
Base64Lib.mp4
..\Base64Lib\Samples\Bitmap\FMX\
Base64Bitmap.mp4
..\Base64Lib\Samples\Bitmap\VCL\
Base64BitmapServerREST.mp4
Base64Lib
is free and open-source software licensed under the