Как встроить изображения в EXE-файл и показать их в виде слайд-шоу - PullRequest
3 голосов
/ 16 июля 2010

У меня есть требование создать диспетчер изображений, который позволит пользователям создавать коллекцию фотографий / изображений, а затем дать им возможность конвертировать эти фотографии в один EXE-файл, который при запуске будет показывать фотографии / изображения в целевой ПК в виде слайд-шоу в полноэкранном режиме.

Возможно ли это сделать для нескольких изображений?

Ответы [ 4 ]

5 голосов
/ 16 июля 2010

Должно быть возможно.То, что вам нужно сделать, это EXE-каркас (заглушка), который читает свой двоичный файл и проверяет наличие списка добавленных изображений (может быть что-то простое, например, [количество изображений] [размеры изображений] [изображение_1] ... [изображение_n]) и отображает их в слайд-шоу.

Затем можно объединить заглушку EXE, информацию об изображениях и изображения для вашего окончательного слайд-шоу EXE.

Поиск конца файла EXE(начало списка изображений) обычно выполняется с помощью постоянного заголовка, который не отображается в файле EXE, зная размер заглушки EXE или записывая смещение списка изображений в конце файла EXE.Кроме того, вы можете хранить информацию в обратном направлении и начать чтение с конца файла.

Вот что-то, что выглядит как хорошая ссылка для пример кода заглушки .

2 голосов
/ 16 июля 2010

IrfanView уже может сделать это:
http://www.irfanview.com/
Он может даже распаковать их из exe-файла снова.

0 голосов
/ 17 июля 2010

Мы предоставили несколько бесплатных классов с открытым исходным кодом для чтения архива .zip, связанного (или нет) с исполняемым файлом.Поэтому вы можете добавить любой архив .zip к вашему exe-файлу, а затем извлечь любое изображение внутри этого .zip с одним классом.

Используйте следующий метод:

constructor TZipRead.Create(const aFileName: TFileName; ZipStartOffset, Size: cardinal);

и укажите paramstr (0)то есть ваш exe-файл как aFileName и ZipStartOffset как минимальный исходный exe-размер: он будет искать начало .zip-файла из этого смещения.Оставьте параметр Size равным 0: он получит размер от самого размера файла.

Этот же класс может получить любой архив .zip, встроенный в качестве ресурса для вашего exe, если вы предпочитаете.

Это два способа добавления содержимого .zip в исполняемый файл:

  1. use copy / b original.exe + pictures.zip newembedded.exe
  2. использование предоставленного класса TZipWrite и егоМетод AddFromZip () для создания вашего exe-кода из кода Delphi: вы даже можете сжимать и добавлять изображения на лету, без временного файла pictures.zip.

См. http://synopse.info/forum/viewtopic.php?pid=163

0 голосов
/ 16 июля 2010

Вы можете создать приложение, которое перечисляет свои собственные ресурсы и загружает их для отображения; на этот раз конечные пользователи будут участвовать в слайд-шоу. Отдельное приложение может добавить выбранные пользователем ресурсы к первому. См. Документацию MSDN для UpdateResource для получения информации о добавлении ресурсов и EnumResourceNames для получения информации о их перечислении.

...