Bonjour,
Je cherche à compiler une image dans mon .exe de sorte que mon application n'ai pas besoin d'être distribuée avec le fichier .jpg.
Merci d'avance de votre aide !
Bonjour,
Je cherche à compiler une image dans mon .exe de sorte que mon application n'ai pas besoin d'être distribuée avec le fichier .jpg.
Merci d'avance de votre aide !
Et... où as-tu rencontré un obstacle pour ce faire ?
Ben mon image n'est pas utilisée dans un composant "image", je compte ensuite l'extraire de l'exe pour recréer le fichier .jpg d'origine...Envoyé par jmfmarques
Heu elle est si bête que ça ma question ???
Une fois ton image dans l'exe, tu ne peux l'"extraire" autrement que depuis ton appli elle-même (sauvegarde de l'image dans un autre fichier).
Mais... : est-ce un contrôle image ou un contrôle PictureBox ? (Distringuo important !) ?
C'est sûr ???Envoyé par jmfmarques
Quand je dis une image, je me pose la question pour n'importe quel fichier que je voudrais inclure dans mon exe pour ensuite "l'extraire" par programmation...
J'avais pas vu que tu avais édité ton post...Envoyé par jmfmarques
Je ne compte pas utiliser de contrôle dans mon appli pour utiliser l'image.
Mon objectif (que je réduit au + simple) c'est par exemple je lance mon exe, et il crée automatiquement mon image...
Ben moi non plus c'est pour ça que je demande...Envoyé par Vesta
Sinon c'est possible d'extraire l'image si je l'utilise dans un composant image ?
Dans un PictureBox l'image est sauvegardée lors de la compilation, il ne faut plus de fichier image source, si?
Dans ce cas tu n'as pas besoin de fichier extérieur, seulement je pense qu'il y a moyen de recréer ce fichier à partir de l'image qui se situe dans le picturebox
N'oubliez pas de mettre le
Il y a une solution pour créer n'importe quel fichier a partir de ton appli:
Tu récupère l'ensemble des codes Hexadecimaux de ton fichier (avec un editeur hexa), simplifions pour l'exemple, ton fichier fait 5 octets et les codes hexadecimaux sont : &h10, &h14, &hF3, &hA6, &h65 (cela ne correspond a rien, c'est juste un exemple )
Disons aussi qu'il sagit d'un fichier Bitmap (toujour pareil, ce n'est pas une image mais c'est juste pour expliquer)
Voila alors un bout de programme, a inserer dans une procedure, qui sera en mesure de créer le fichier:
C'est assez long mais ca marche pour n'importe quel fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Dim Contenu As String Dim AdresseFile As String Contenu = Chr(&h10) & Chr(&h14) & Chr(&hF3) & Chr(&hA6) & Chr(&h65) On error resume next 'continu s'il y a une erreur Adresse = "C:\MonFichier.bmp" 'definit l'adresse et le nom de fichier Kill Adresse 'detruit si un fichier existe déjà Open Adresse For Binary As #1 Put #1,1,Contenu Close #1
ça me semble un peu laborieux mais c'est déjà un début...
Merci avigeilpro pour cette idée !
J'ai une solution pour faciliter la création de la variable contenu
télécharge Winhex sur internet, il existe en version d'evaluation et ca sufit largement.
Tu ouvre ton fichier avec Winhex, tu appuis sur Ctrl+Shift+C (ou Edit,Copy All,Hex Values) tu ouvre un nouveau fichier text dans lequel tu colle ce qui a été copié.
Tu met le code suivant dans une procedure, et du indique dans la variable Adresse l'adresse du fichier texte que tu a créé. Enfin tu lance.
Lorsque la procedure est terminée, le fichier texte que tu a créé a été modifié et tu te retrouve avec les "Chr(&h..) & Chr(&h..) ...". Tu n'a plus qu'a copier et coller sous VB
PS: le code met un certain temps pour les fichier long, mais il serat toujours plus rapide que toi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Dim Contenu As String Dim Contenu2 As String Dim Adresse As String Dim Boucle As Single Dim TailleFichier As Single Dim Caractères() As String Adresse = "c:\image.txt" TailleFichier = FileLen(Adresse) Contenu = Space(TailleFichier) Open Adresse For Binary As #1 Get #1, , Contenu Close #1 Contenu2 = "" ReDim Caractères(TailleFichier / 2) As String For Boucle = 1 To TailleFichier / 2 If Boucle <> 1 Then Contenu2 = Contenu2 & " & " Contenu2 = Contenu2 & "Chr(&h" & Mid(Contenu, 2 * Boucle - 1, 2) & ")" Next Kill Adresse Open Adresse For Binary As #1 Put #1, , Contenu2 Close #1
Mais avigeilpro, avec ton script, tu peux faire mumuse qu'avec 1 image...
Sauf si il existe une fonction vb 9 (ou un module, ou qu'importe) qui chope les Hexa d'une image...
nan?
n'oubliez pas la balise
riesseg a dit:
Que ve tu dire par la? De quel script parles-tu, le premier ou le deuxième?Mais avigeilpro, avec ton script, tu peux faire mumuse qu'avec 1 image...
On peut toujours récupéré les code Hexa d'un fichier, quel qu'il soit
c'est pas avec ca
que tu recuperais l'hexa ?Tu ouvre ton fichier avec Winhex
n'oubliez pas la balise
Merci pour votre aide, j'ai trouvé un début de solution en utilisant un fichier de ressource dans lequel j'intègre mon image. Ainsi quand je crée mon exe l'image est compilée dans le programme, j'arrive à rafficher l'image dans une picturebox dans mon programme, mais je n'arrive pas à l'extraire c'est à dire à recréer mon fichier .bmp sur le disque dur...
Help... Ou si vous avez d'autres idées elles sont les bienvenues !
Si, en effet.Et alors? c'est la solution la plus rapide que j'avais sous la main. Maintenant tu peut le faire avec un code, mais je n'avais pas le temps. Il suffirait d'ouvrir le fichier image de la meme facon que tu ouvre le fichier texte, ensuite tu parcoure l'ensemble des caractères et tu utilise Asc pour obtenir la valeur Hexa, mais ton code sera 100 fois plus lent que de telecharger Winhex et de l'utiliser pour les récupérer. Le but ici était de construire un code le plus rapidement possible, pas de faire ce qui est déja fait ailleur .
ok avigilpro.
C'etait pour etre sur ^^
Sinon pour ton probleme Vince,
Ca marche pas apres une compilation ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2SavePicture MaFrame.pictureBox.Picture, App.Path & "\NouvelleImage.jpg"
n'oubliez pas la balise
ceci ne marchera pas ainsi car :SavePicture MaFrame.pictureBox.Picture, App.Path & "\NouvelleImage.jpg"
1) la sauvegarde se fera en .bmp même si le fichier était .jpg
2) il faut d'abord "figer" dans la pictureBox, ce qui ne me semble pas avoir été fait !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager