Включение JPEG в EXE-файл 2

1) Создайте текстовый файл с расширением «.rc». Имя этого файла должно отличаться от имени файла-пректа или любого модуля проекта. Файл должен содержать строку вроде:

MYJPEG JPEG C:\DownLoad\MY.JPG

где: «MYJPEG» имя ресурса «JPEG» пользовательский тип ресурса «C:\DownLoad\MY.JPG» путь к JPEG файлу.

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

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

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

C:\DelphiPath\BIN\BRCC32.EXE C:\ProjectPath\FOO.RC

Вы получите откомпилированный ресурс — файл с расширением «.res». (в нашем случае foo.res).

Далее добавте ресурс к своему приложению.

{Грузим ресурс}

{$R FOO.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('MYJPEG', Image1.Picture);

end;

Добавить комментарий