2010-07-16 23 views
3

J'ai besoin de construire un gestionnaire d'image qui permettra aux utilisateurs de créer une collection de photos/images et de leur donner une option pour convertir ces photos en un seul fichier EXE qui, lorsqu'il est exécuté, affiche les photos/images sur le PC cible sous forme de diaporama en plein écran.Comment incorporer des images au fichier EXE et les afficher en diaporama

Est-il possible de faire cela pour plusieurs images?

+1

Il serait intéressant de chercher des programmes freeware qui peuvent le faire. Je n'ai pas le temps de chercher maintenant, mais je suis sûr qu'ils existent. – MarkJ

+0

Ils existent, mais le type de fonctionnalités qui sont nécessaires dans ce que je développe, ils sont inutiles pour moi. –

+0

cela peut être aussi une solution: http://www.delphi3000.com/articles/article_2606.asp?SK= meilleures salutations, – RBA

Répondre

5

Devrait être possible. Ce que vous devrez faire est un framework EXE (stub) qui lit son propre binaire et vérifie une liste d'images ajoutée (peut être quelque chose de simple comme [nombre d'images] [tailles d'image] [image_1] ... [image_n]) et les affiche dans un diaporama.

Vous pouvez ensuite concaténer le bouchon EXE, les informations d'image et les images pour votre diaporama final EXE. La recherche de la fin du fichier EXE (début de la liste d'images) se fait généralement en utilisant un en-tête constant qui n'apparaît pas dans le fichier EXE, connaissant la taille du stub EXE ou écrivant le décalage de la liste d'images à la fin du fichier EXE. Alternativement, vous pouvez stocker l'information dans l'autre sens et commencer à lire à la fin du fichier.

Voici quelque chose qui ressemble à un bon lien pour stub example code.

+2

Les ressources seraient un bon moyen de stocker les images. Vous pouvez également utiliser l'API Windows pour les récupérer. – mj2008

+0

@ mj2008, Les ressources requièrent la recompilation des exes OU l'utilisation de techniques hackish pour modifier la ressource après la compilation. L'OP veut construire un diaporama, le stub exe + ajouté - quelque chose est infiniment mieux. +1 –

+0

Hackish? Apporter quoi que ce soit à un exe est infiniment plus hackish. La mise à jour d'une ressource met à jour la somme de contrôle exe et plus de "truc" dans l'en-tête PE. – wqw

2

IrfanView peut allready faire:
http://www.irfanview.com/
Il peut même les décompresser à partir du fichier exe à nouveau.

+0

+1 Ne pas écrire un nouveau logiciel si vous pouvez utiliser un logiciel libre de bonne qualité (ce que je suppose, je ne l'ai pas utilisé moi-même!) – MarkJ

+0

Utiliser Irfan View est une nouvelle pour moi. Je vais vérifier. Merci pour l'indice! –

0

Vous pouvez créer une application qui énumère ses propres ressources et les charge pour l'affichage; celui-ci les utilisateurs finaux courront pour le diaporama. Une application distincte pourrait ajouter les ressources sélectionnées par l'utilisateur à la première. Voir la documentation MSDN pour UpdateResource pour plus d'informations sur l'ajout des ressources et EnumResourceNames pour plus d'informations sur leur énumération.

0

Nous avons fourni des classes libres et open source pour lire une archive .zip fournie (ou non) à un exe. Vous pouvez donc ajouter n'importe quelle archive .zip à votre exe, puis extraire une image à l'intérieur de ce fichier .zip avec une classe.

Utilisez la méthode suivante:

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

et fournir ParamStr (0) - à savoir votre exe - comme AFileName et ZipStartOffset comme la taille originale d'exe minimale: il recherchera le début du fichier .zip de ce décalage. Laisser le paramètre Taille à 0: il obtiendra la taille de la taille du fichier elle-même.

La même classe peut obtenir n'importe quelle archive .zip incorporée comme ressource à votre exe, si vous préférez.

Ce sont deux façons de annexant à un contenu .zip exe:

  1. utilisation copier/b original.exe + pictures.zip newembedded.exe
  2. utiliser la classe TZipWrite fournies, et son AddFromZip () pour créer votre exe à partir du code Delphi: vous pouvez même compresser et ajouter vos images à la volée, sans fichier images.zip temporaire.

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