Для начала необходимо создать файл описания ресурса
myresources.rc IMG1 GIF giffile.gif IMG2 BITMAP bitmapfile.bmp
Далее, превратим его в файл ресурса, который подключим к проекту с помощью директивы компилятора {$R myresource.res}
brcc32.exe myresource.rc
Теперь, собственно код для загрузки:
var MainForm: TMainForm; g: TGPGraphics; bmp: TGPBitmap; : procedure TMainForm.FormCreate(Sender: TObject); var resHandle, resSize, hBuffer: Cardinal; presData, pBuffer: pointer; resIStream: IStream; ERROR: Boolean; begin // получаем хэндл указанного ресурса resHandle := FindResource(HInstance, 'IMG1', 'GIF'); if resHandle = 0 then ERROR := True; // получаем размер ресурса resSize := SizeofResource(HInstance, resHandle); if resSize = 0 then ERROR := True; // получаем указатель на первый байт ресурса presData := LockResource(LoadResource(HInstance, resHandle)); if presData = nil then ERROR := True; // выделяем необходимое количество байт в куче(heap) и получаем хэндл hBuffer := GlobalAlloc(GMEM_MOVEABLE, resSize); if hBuffer <> 0 then begin // получаем указатель на выделенный блок памяти pBuffer := GlobalLock(hBuffer); if pBuffer <> nil then begin // копируем ресурс в память CopyMemory(pBuffer, presData, resSize); // и создаем на его основе поток в памяти if CreateStreamOnHGlobal(hBuffer, False, resIStream) = S_OK then // используем перегруженный метод создания изображения из потока bmp := TGPBitmap.Create(resIStream); end; end; end;

Загрузка изображения из ресурса с помощью GDI+
