Библиотека программиста

18.04.2024 - Как включить JPG-файл внутрь exe-файла?

1. Нужно создать resource script file (*.RC) с помощью простого текстового файла (например блокнота), и вписать всего одну строку:
1 RCDATA "MyPic.jpg"
Единичка – это просто номер ресурса, RCDATA - определяет, что мы имеем дело с user-defined resource. Последнее – имя файла с JPG рисунком.

2. Компилируем его в .RES файл, при помощи BRCC32.EXE. В MS-DOS набираем:
BRCC32 MyPic.RC
Это должно создать файл MyPic.RES.


3. Добавляем директиву компилятор в исходный код нашей программы. Она должна следовать за директивой формы, как показано здесь:

{$R *.DFM}
{$R MyPic.RES}


4. Добавляем следующую процедуру в программу:
Код:
Код
procedure LoadJPEGfromEXE;
var
MyJPG : TJPEGImage; // JPEG
ResStream : TResourceStream; // Resource Stream
begin
MyJPG := TJPEGImage.Create;
ResStream := nil;
try
ResStream := TResourceStream.CreateFromID(HInstance, 1, RT_RCDATA);
MyJPG.LoadFromStream(ResStream); // ДА! Так просто :)
Canvas.Draw(12,12,MyJPG); // Нарисуем на Canvas, чтобы убедиться, что все работает!
finally
MyJPG.Free;
ResStream.Free;
end;
end; // procedure



Посмотрите на второй параметр процедуры CreateFromID объекта TresourceStream. Это просто индекс ресурса. Вы можете включить более, чем один jpeg в своей программе просто добавляя новую строчку для каждого jpeg (с другим индексом) в .RC файл.
Опубликовано на сайте: http://www.coders-library.ru
Прямая ссылка: http://www.coders-library.ru/index.php?name=news&op=view&id=324