[R] Inclure image dans exécutable

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

[R] Inclure image dans exécutable

#1

Message par aulus »

Bonjour,

J'ai codé l'insertion d'une image par :

Code : Tout sélectionner

$image = GUICtrlCreatePic($img, 0, 0, 1010, 720)
 
Et j'ai été surpris de voir que celle-ci n'est pas incluse dans l'exécutable. Pour qu'elle y apparaisse, l'exécutable doit être accompagné du fichier-image.

Y a-t-il possibilité d'inclure l'image dans l'exécutable, sans que ce dernier fasse appel à une image externe ?

Je vous remercie.
Modifié en dernier par aulus le sam. 14 déc. 2013 23:29, modifié 1 fois.
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] Inclure image dans exécutable

#2

Message par aulus »

J'ai trouvé l'UDF resources.au3 et le code

Code : Tout sélectionner

#AutoIt3Wrapper_Res_File_Add=c:\autoit\mon_image.jpg, rt_rcdata, LOGO_JPG
...
$image = GUICtrlCreatePic("", 0, 0, 1010, 720)
_ResourceSetImageToCtrl(-1, "LOGO_JPG")
 
Mais j'obtiens beaucoup d'avertissements :
C:\autoit\resources.au3(139,55) : WARNING: $hImage possibly not declared/created yet
$hImage = _GDIPlus_BitmapCreateFromHBITMAP($ResData)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\autoit\resources.au3(131,60) : WARNING: $pBitmap: declared, but not used in func.
Local $ResData, $nSize, $hData, $pData, $pStream, $pBitmap,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\autoit\resources.au3(131,70) : WARNING: $hBitmap: declared, but not used in func.
Local $ResData, $nSize, $hData, $pData, $pStream, $pBitmap, $hBitmap
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\autoit\resources.au3(160,57) : WARNING: $hImage possibly not declared/created yet
$hImage = _ResourceGetAsImage($ResName, $ResType, $DLL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\autoit\resources.au3(162,60) : WARNING: $hBitmap possibly not declared/created yet
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\autoit\resources.au3(173,52) : WARNING: $hImage possibly not declared/created yet
$hImage = _ResourceGetAsImage($ResName, $ResType)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\autoit\resources.au3(247,66) : WARNING: $iCtrl_GETIMAGE: declared, but not used in func.
Local $hWnd, $hPrev, $Style, $iCtrl_SETIMAGE, $iCtrl_GETIMAGE,
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\autoit\resources.au3(285,18) : WARNING: $hInstance possibly not declared/created yet
$hInstance = 0
~~~~~~~~~~~~~~~~^
C:\autoit\mon_prog.au3 - 0 error(s), 8 warning(s)
Avatar du membre
julie
Niveau 5
Niveau 5
Messages : 128
Enregistré le : sam. 28 janv. 2012 17:28
Status : Hors ligne

Re: [..] Inclure image dans exécutable

#3

Message par julie »

tiens voila la solution ;)
fonction fileinstall()
► Afficher le texte
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Inclure image dans exécutable

#4

Message par Tlem »

FileInstall() est la solution la plus simple. Si vous voulez inclure l'image dans les ressources de l'exécutable compilé ( ce qui fait 'plus propre'), il y a deux tutoriels dans la section désignée. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] Inclure image dans exécutable

#5

Message par aulus »

Bonjour et merci,

Lancée sous AutoIt, la fonction FileInstall() fonctionne. Mais à la compilation, j'obtiens la fenêtre d'erreur :
Aut2Exe Error
Invalid FileInstall() Function
... et la compilation est abandonnée.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Inclure image dans exécutable

#6

Message par mikell »

Vérifie la syntaxe du chemin de la source telle qu'elle est demandée dans la doc
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
parazitenew
Niveau 7
Niveau 7
Messages : 310
Enregistré le : sam. 10 déc. 2011 15:08
Localisation : Algerie
Status : Hors ligne

Re: [..] Inclure image dans exécutable

#7

Message par parazitenew »

Juste une idée comme ça, pourquoi ne pas utiliser une .dll? c'est facile, simple, tu peux même y inclure des icones et images pour ton programme.
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] Inclure image dans exécutable

#8

Message par aulus »

mikell a écrit :Vérifie la syntaxe du chemin de la source telle qu'elle est demandée dans la doc
J'ai copié le code de Julie en changeant simplement le nom de mon fichier image.
parazitenew a écrit : pourquoi ne pas utiliser une .dll?
Mon intention est de ne pas ajouter de fichiers supplémentaires à mon exécutable.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Inclure image dans exécutable

#9

Message par mikell »

Essaye

Code : Tout sélectionner

FileInstall(".\img_test.jpg", @TempDir & "\img_test.jpg")
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] Inclure image dans exécutable

#10

Message par aulus »

Le problème est toujours là. Avez-vous testé le code de Julie ? Obtenez-vous un message d'erreur aussi ?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Inclure image dans exécutable

#11

Message par mikell »

Aucune raison apparente pour que ça ne marche pas...
Peut-être #RequireAdmin ?
Sinon je donne ma langue au chat
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
julie
Niveau 5
Niveau 5
Messages : 128
Enregistré le : sam. 28 janv. 2012 17:28
Status : Hors ligne

Re: [..] Inclure image dans exécutable

#12

Message par julie »

essai comme ceci

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
FileInstall ( "img_test.jpg" , @TempDir&"\" )
$img = @TempDir & "\img_test.jpg"
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 1010, 720, 192, 124)
$image = GUICtrlCreatePic($img, 0, 0, 1010, 720)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    End
place bien ton img a la racine de ton script en veifiant bien qu'il porte le nom img_test.jpg
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [..] Inclure image dans exécutable

#13

Message par aulus »

Cette fois-ci tout se passe bien. C'était donc un problème de chemin...

Merci Julie pour ce code qui fait bien ce que j'ai l'intention de faire, et merci à tous pour vos avis.
aulus
Niveau 7
Niveau 7
Messages : 424
Enregistré le : lun. 25 mars 2013 19:38
Status : Hors ligne

Re: [R] Inclure image dans exécutable

#14

Message par aulus »

Une observation : l'insertion de l'image dans l'exécutable modifie ses couleurs d'origine (les comparaisons étant faites sur le même écran, bien entendu). Avez-vous déjà constaté ce phénomène ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Inclure image dans exécutable

#15

Message par Tlem »

Un fichier est un fichier. Si la commande FileInstall() modifiait le contenu des fichiers, cela provoquerait des comportement bien étrange en cas d’exécutable, fichiers textes, etc ... Et puis cela n'aurait aucun sens.

La modification des couleurs que vous constatez provient indéniablement d'autre chose. Je ne peux vous orienter sans plus d'information, mais faites des recherches et vous trouverez.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre