【问题标题】:How to embedded images to EXE file and show them as slideshow如何将图像嵌入到 EXE 文件中并将它们显示为幻灯片
【发布时间】:2010-07-16 06:59:00
【问题描述】:

我需要构建一个图像管理器,它允许用户构建照片/图像的集合,然后为他们提供将这些照片转换为单个 EXE 的选项,该 EXE 在运行时将显示目标上的照片/图像PC 作为全屏幻灯片放映。

是否可以对多个图像执行此操作?

【问题讨论】:

  • 值得搜索可以做到这一点的免费软件程序。我现在没有时间搜索,但我很确定它们存在。
  • 这也是一个解决方案:delphi3000.com/articles/article_2606.asp?SK= 最好的问候,
  • 它们存在,但我正在开发的那些功能对我来说毫无用处。

标签: delphi vb6 executable slideshow realbasic


【解决方案1】:

应该是可以的。您需要做的是一个 EXE 框架(存根),它读取自己的二进制文件并检查附加的图像列表(可以是简单的东西,例如 [图像数量] [图像大小] [图像_1] ... [图像_n] ) 并以幻灯片形式显示。

然后,您可以连接 EXE 存根、图像信息和最终幻灯片放映 EXE 的图像。

搜索 EXE 文件的结尾(图像列表的开头)通常通过使用 EXE 文件中不出现的常量头、知道存根 EXE 的大小或将图像列表偏移写入EXE 文件的结尾。或者,您可以反过来存储信息并从文件末尾开始读取。

这似乎是stub example code 的一个很好的链接。

【讨论】:

  • 资源将是存储图像的好方法。您也可以使用 Windows API 来检索它们。
  • @mj2008,资源需要重新编译 exe 或使用 hackish 技术来更改资源后编译。 OP 想要构建一个幻灯片,存根 exe + appended-something 更好。 +1。
  • 黑客?将任何内容附加到 exe 中会更加骇人听闻。更新资源是在 PE 标头中更新 exe 校验和和更多“东西”。
【解决方案2】:

IrfanView 已经可以做到这一点:
http://www.irfanview.com/
它甚至可以再次从 exe 文件中解压它们。

【讨论】:

  • +1 如果您可以使用现有的优质免费软件,请不要编写新软件(我认为这是,我自己没有使用过!)
  • 使用 Irfan View 对我来说是个新闻。我会查一下。谢谢提示!
【解决方案3】:

您可以构建一个应用程序,枚举它自己的资源并加载它们以进行显示;最终用户将运行此幻灯片放映。一个单独的应用程序可以将用户选择的资源添加到第一个资源中。有关添加资源的信息,请参阅 UpdateResource 的 MSDN 文档,有关枚举它们的信息,请参阅 EnumResourceNames

【讨论】:

    【解决方案4】:

    我们提供了一些免费的开源类来读取捆绑(或不捆绑)到 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 的两种方式:

    1. 使用复制/b original.exe+pictures.zip newembedded.exe
    2. 使用提供的 TZipWrite 类及其 AddFromZip() 方法从 Delphi 代码创建您的 exe:您甚至可以即时压缩和附加您的图像,而无需使用临时 pictures.zip 文件。

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

    【讨论】:

      猜你喜欢
      • 2011-12-15
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多