我需要构建一个图像管理器,允许用户构建一组照片/图像,然后给他们一个选项,将这些照片转换为单个EXE,在运行时,将在目标上显示照片/图像PC作为全屏幻灯片放映。
是否可以为多个图像执行此操作?
答案 0 :(得分:5)
应该可以。您需要做的是一个EXE框架(存根),它读取自己的二进制文件并检查附加的图像列表(可以像[图像数量] [图像大小] [image_1] ... [image_n]一样简单并在幻灯片放映中显示这些内容。
然后,您可以连接EXE存根,图像信息和最终幻灯片EXE的图像。
搜索EXE文件的结尾(图像列表的开头)通常是通过使用EXE文件中没有出现的常量标题来完成的,知道存根EXE的大小或写入图像列表偏移量。 EXE文件的结尾。或者,您可以反过来存储信息并从文件末尾开始阅读。
这似乎是stub example code的良好链接。
答案 1 :(得分:2)
IrfanView可以做到这一点:
http://www.irfanview.com/
它甚至可以再次从exe文件中解压缩它们。
答案 2 :(得分:0)
您可以构建一个枚举其自有资源并加载它们以供显示的应用程序;这一个最终用户将为幻灯片放映。单独的应用程序可以将用户选择的资源添加到第一个。有关添加资源的信息,请参阅UpdateResource的MSDN文档;有关枚举资源的信息,请参阅EnumResourceNames。
答案 3 :(得分:0)
我们提供了一些免费和开源类来读取捆绑(或不捆绑)到exe的.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内容附加到exe:
的两种方法