locked
Embarquer des jpeg dans le code RRS feed

  • Question

  • Bonjour
    Je développe une application en C# sous WinCE et je voudrais embarquer des images dans le code pour éviter d'avoir à les déployer à part sur ma cible. Comment faire ?
    De plus, dans le cas où les images ne sont pas embarquées dans l'application, y a-t-il moyen de les placer ailleurs qu'à la racine de l'arborescence de ma cible ? Dans mon code, je spécifie juste le nom du fichier image, sans le chemin. Je souhaiterais pouvoir dire à l'application d'aller les chercher ailleurs.
    Merci !
    jeudi 20 novembre 2008 15:59

Réponses

  • Bonjour,

     

    L'intégration d'images ou d'autres informations (chaines, icones, ...) dans l'exécutable (ou l'assembly en .Net) correspond à la notion de ressource. Dans un projet .Net pour ajouter une image comme ressource, un moyen simple est de :

    1. Afficher les propriétés du projet (clique droit sur le projet, puis choisir 'Propriétés' dans le menu contextuel)
    2. Afficher les ressources (clique sur l'onglet 'Ressources')
    3. Ajouter une ressource de type image (dans la liste déroulante 'Ajouter une ressource' choisir 'Ajouter un fichier existant' ou 'Nouvelle Image'.

    La manipulation de cette ressource est facilitée par la classe Ressources et ces propriétés statiques. Par exemple, le code pour charger dans le contrôle PictureBox1 la ressource 'Image1' est :

    Code Snippet

     

    pictureBox1.Image = Properties.Resources.Image1;

     

     

    Il est possible de stocker les ressources dans une assembly satellite (dll), cela permet par exemple d'alléger la taille de l'éxécutable et si besoin sa mise à jour. Les assemblies satellites sont aussi très utiles pour les problèmatiques de multilangue.

     

    Pour manipuler des fichiers images extérieurs avec le Compact Framework, la méthode FromFile de la classe Image n'est pas disponible. On peut utiliser un objet de type Bitmap en passant à son constructeur le chemin complet du fichier. Par exemple, le code pour charger dans le contrôle PictureBox1 le fichier 'Image1.jpg' du répertoire '\Storage Card' est :

    Code Snippet

     

    pictureBox1.Image = new Bitmap(@"\Storage Card\image1.jpg");

     

     

    Pour éviter d'avoir un chemin codé en dur, on peut utiliser des paramètres stockés dans le fichier .config de l'application.

     

    Jean-Michel Guemguem

    Tekigo

    vendredi 21 novembre 2008 23:14
  • Bonjour,

    Sous Windows CE il n'y a pas de notion de "répertoire courant", il faut donc toujours préciser le chemin complet des fichiers. Ceci est valable - à ma connaissance - quelque soit le langage de développement.

    Cdlt
    Thierry Joubert - THEORIS
    samedi 22 novembre 2008 13:21

Toutes les réponses

  • Bonjour,

     

    L'intégration d'images ou d'autres informations (chaines, icones, ...) dans l'exécutable (ou l'assembly en .Net) correspond à la notion de ressource. Dans un projet .Net pour ajouter une image comme ressource, un moyen simple est de :

    1. Afficher les propriétés du projet (clique droit sur le projet, puis choisir 'Propriétés' dans le menu contextuel)
    2. Afficher les ressources (clique sur l'onglet 'Ressources')
    3. Ajouter une ressource de type image (dans la liste déroulante 'Ajouter une ressource' choisir 'Ajouter un fichier existant' ou 'Nouvelle Image'.

    La manipulation de cette ressource est facilitée par la classe Ressources et ces propriétés statiques. Par exemple, le code pour charger dans le contrôle PictureBox1 la ressource 'Image1' est :

    Code Snippet

     

    pictureBox1.Image = Properties.Resources.Image1;

     

     

    Il est possible de stocker les ressources dans une assembly satellite (dll), cela permet par exemple d'alléger la taille de l'éxécutable et si besoin sa mise à jour. Les assemblies satellites sont aussi très utiles pour les problèmatiques de multilangue.

     

    Pour manipuler des fichiers images extérieurs avec le Compact Framework, la méthode FromFile de la classe Image n'est pas disponible. On peut utiliser un objet de type Bitmap en passant à son constructeur le chemin complet du fichier. Par exemple, le code pour charger dans le contrôle PictureBox1 le fichier 'Image1.jpg' du répertoire '\Storage Card' est :

    Code Snippet

     

    pictureBox1.Image = new Bitmap(@"\Storage Card\image1.jpg");

     

     

    Pour éviter d'avoir un chemin codé en dur, on peut utiliser des paramètres stockés dans le fichier .config de l'application.

     

    Jean-Michel Guemguem

    Tekigo

    vendredi 21 novembre 2008 23:14
  • Bonjour,

    Sous Windows CE il n'y a pas de notion de "répertoire courant", il faut donc toujours préciser le chemin complet des fichiers. Ceci est valable - à ma connaissance - quelque soit le langage de développement.

    Cdlt
    Thierry Joubert - THEORIS
    samedi 22 novembre 2008 13:21
  • Merci à vous 2, il me manquait en fait juste l'appel à la ressource pour arriver au bon résultat ! J'essayais par un GetObject mais il y a donc plus simple.
    Et merci pour la précision concernant les chemins de fichiers !
    lundi 24 novembre 2008 10:39