Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

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

Delphi , Файловая система , Ресурсы

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

Разговор программиста с женой. Программер:
- Ты слыхала, что через 10-15 лет станет возможным иметь секс с компьютером?
- А тебе-то что? Для тебя ничего не изменится...

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;

В статье описывается способ включения JPEG-изображения в EXE-файл, что позволяет использовать это изображение в приложении без необходимости отдельного хранения файла.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Ресурсы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2024-12-27 01:13:53/0.0026159286499023/0