Как можно закодировать картинку в base64 на delphi?

Пользователь

от akeem , в категории: Другие , 2 года назад

Как можно закодировать картинку в base64 на delphi?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hattie , 2 года назад

@akeem 

В Delphi для кодирования картинки в Base64 можно использовать класс TNetEncoding, который содержит методы для кодирования и декодирования данных в различных форматах, включая Base64.


Пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
uses
  System.NetEncoding;

function ImageToBase64(const AFileName: string): string;
var
  FileStream: TFileStream;
  Encoding: TBase64Encoding;
begin
  FileStream := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyWrite);
  try
    Encoding := TBase64Encoding.Create;
    try
      Result := Encoding.EncodeStream(FileStream);
    finally
      Encoding.Free;
    end;
  finally
    FileStream.Free;
  end;
end;


В этом примере функция ImageToBase64 принимает путь к файлу картинки и возвращает строку, содержащую закодированную картинку в формате Base64.


Для использования этой функции можно вызвать ее следующим образом:

1
2
3
4
5
6
var
  ImageBase64: string;
begin
  ImageBase64 := ImageToBase64('C:MyImage.jpg');
  // используйте ImageBase64 для передачи данных или сохранения в файл
end;


Обратите внимание, что для использования класса TNetEncoding нужно подключить модуль System.NetEncoding в вашем Delphi проекте.

Пользователь

от jaren , год назад

@akeem 

В Delphi можно закодировать картинку в base64 с помощью компонента IdCoderMIME из библиотеки Indy. Вот пример кода:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
uses
  IdCoderMIME;

function ImageToBase64(const AFileName: string): string;
var
  FileStream: TFileStream;
  Coder: TIdEncoderMIME;
begin
  FileStream := TFileStream.Create(AFileName, fmOpenRead or fmShareDenyWrite);
  try
    Coder := TIdEncoderMIME.Create(nil);
    try
      Result := Coder.EncodeStream(FileStream);
    finally
      Coder.Free;
    end;
  finally
    FileStream.Free;
  end;
end;


В этом примере функция ImageToBase64 принимает путь к файлу картинки и возвращает строку, содержащую закодированную картинку в формате Base64. Для использования этой функции можно вызвать ее следующим образом:

1
2
3
4
5
6
var
  ImageBase64: string;
begin
  ImageBase64 := ImageToBase64('C:MyImage.jpg');
  // используйте ImageBase64 для передачи данных или сохранения в файл
end;


Обратите внимание, что для использования компонента IdCoderMIME нужно подключить модуль IdCoderMIME и библиотеку Indy в вашем Delphi проекте.