ورود

View Full Version : سوال: تبدیل Image به base64 و برعکس



baran_2005
پنج شنبه 07 دی 1396, 08:27 صبح
سلام
کد زیر گذاشتنم اینکد درست کار میکنه ولی دیکد بدون خطا و کاری انجام نمیده . میتونید راهنماییم کنید ؟





uses Soap.EncdDecd
function EncodeFile(const FileName: string): AnsiString;
var
stream: TMemoryStream;
begin
stream := TMemoryStream.Create;
try
stream.LoadFromFile(Filename);
result := EncodeBase64(stream.Memory, stream.Size);

finally
stream.Free;
end;
end;

function DecodeFile(const FileName: AnsiString): AnsiString;
var
stream: TMemoryStream;
size:integer;
begin
stream := TMemoryStream.Create;
stream.Position:= 0;
try
size:=sizeof(DecodeBase64(FileName));

stream.Write(DecodeBase64(FileName), size);

form1.image1.Picture.Bitmap.LoadFromStream(stream) ;
finally
stream.Free;
end;
end;

procedure TForm1.EncodeButton1Click(Sender: TObject);
begin
str:= EncodeFile('d:\pic.jpg');
end;

procedure TForm1.DecodeButton2Click(Sender: TObject);
begin
DecodeFile(str);
end;

baran_2005
یک شنبه 10 دی 1396, 10:48 صبح
اینم دیکد فقط تو فایل ذخیره میشه بازم بهتر از هیچی البته من خیلی وقت نزاشتم





procedure DecodeToFile(const base64: AnsiString; const FileName: string);
var
stream: TFileStream;
bytes: TBytes;
begin
bytes := DecodeBase64(base64);
stream := TFileStream.Create(FileName, fmCreate);
try
if bytes<>nil then
stream.Write(bytes[0], Length(Bytes));
finally
stream.Free;
end;
end;