Внешний вид сайта:

Как поместить JPEG в файл ресурсов и загрузить его

Создайте текстовый файл с расширением .rc. Имя этого файла должно отличаться от имени файла-проекта или любого модуля проекта. Файл должен содержать строку вроде:
TESTJPEG JPEG C:\Projects\Proba.JPG

где:

  • TESTJPEG - имя ресурса
  • JPEG - пользовательский тип ресурса
  • C:\Projects\Proba.JPG - путь к JPEG файлу.

Пусть например rc-файл называется MyRes.rc

Запустите BRCC32.exe (Borland Resource CommandLine Compiler) - программа находится в каталоге Bin Delphi/C++ Builder - передав ей в качестве параметра полный путь к rc-файлу.

В нашем примере:

C:\DelphiPath\BIN\BRCC32.EXE C:\ProjectPath\MyRes.rc

Вы получите откомпилированный ресурс - файл с расширением .res. (в нашем случае MyRes.res). Далее добавьте ресурс к своему приложению.

{$R MyRes.RES}

uses Jpeg;

procedure LoadJPEGFromRes(TheJPEG : string; 
    ThePicture : TPicture);
var
  ResHandle : THandle;
  MemHandle : THandle;
  MemStream : TMemoryStream;
  ResPtr    : PByte;
  ResSize   : Longint;
  JPEGImage : TJPEGImage;
begin
  ResHandle := FindResource(hInstance, 
    PChar(TheJPEG), 'JPEG');
  MemHandle := LoadResource(hInstance, ResHandle);
  ResPtr    := LockResource(MemHandle);
  MemStream := TMemoryStream.Create;
  JPEGImage := TJPEGImage.Create;
  ResSize := SizeOfResource(hInstance, ResHandle);
  MemStream.SetSize(ResSize);
  MemStream.Write(ResPtr^, ResSize);
  FreeResource(MemHandle);
  MemStream.Seek(0, 0);
  JPEGImage.LoadFromStream(MemStream);
  ThePicture.Assign(JPEGImage);
  JPEGImage.Free;
  MemStream.Free;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  LoadJPEGFromRes('TESTJPEG', Image1.Picture);
end;

Комментарии

Нет комментариев. Ваш будет первым!