BMP/JPG Dans un EXE ? Topic is solved

Poser vos questions de programmation en AutoHotkey
User avatar
SmX1
Posts: 3
Joined: 20 Feb 2021, 18:19

BMP/JPG Dans un EXE ?

Post by SmX1 » 20 Feb 2021, 19:09

Bonjour,

Je souhaite intégrer une image dans mon interface (gui).

J'utilise pour cela:

Code: Select all

Gui, Add, Picture, x1 y1 w98 h98 , Avatar.jpg
Mais dès que je déplace mon fichier...cela part en cacahuette
(normal étant donné que le code se réfère a une image qui n'est plus la).

Comment intégrer cette image dans mon EXE ?

J'ai tenté avec ResHack, d'ajouter l'image comme ressource, simple, mais dans mon code, comment faire appel a cette ressource ?

J'ai tenté avec Image2Include (image convertie "Create_Avatar_bmp.ahk") mais après suis perdu.

Il y a pas mal de topic en anglais (langue que je n'ai pas eu a l'école) sur le sujet et plus j'essaye de les comprendre, plus je m'enfonce....

garry
Posts: 3770
Joined: 22 Dec 2013, 12:50

Re: BMP/JPG Dans un EXE ?

Post by garry » 21 Feb 2021, 13:41

Example avec fileinstall

Code: Select all

#Warn
#NoEnv
setworkingdir,%a_scriptdir%
fileinstall,avatar.jpg,avatar.jpg,1
Gui, Add, Picture, x1 y1 w200 h-1 ,avatar.jpg
Gui,show
return
Guiclose:
Exitapp



Example du SKAN ,
essayer script-2
script-1 pour créer image et ajoutez les données du fichier 'pngdata.txt' à fichier-2 pngdata=


https://autohotkey.com/board/topic/85709-base64enc-base64dec-base64-encoder-decoder/
Fichier-1

Code: Select all

;================== SCRIPT-1 =========================================================
;-https://autohotkey.com/board/topic/85709-base64enc-base64dec-base64-encoder-decoder/
SetWorkingDir, %A_ScriptDir%

File := a_scriptdir . "\test.png"
FileGetSize, Size, %File%
FileRead, Bin, *c %File%
Base64enc( PNGDATA, Bin, Size )
aa:=pngdata
fileappend,%aa%,%a_scriptdir%\pngdata.txt,utf-8
Return  

Base64enc( ByRef OutData, ByRef InData, InDataLen ) {
 DllCall( "Crypt32.dll\CryptBinaryToString" ( A_IsUnicode ? "W" : "A" )
        , UInt,&InData, UInt,InDataLen, UInt,1, UInt,0, UIntP,TChars, "CDECL Int" )
 VarSetCapacity( OutData, Req := TChars * ( A_IsUnicode ? 2 : 1 ) )
 DllCall( "Crypt32.dll\CryptBinaryToString" ( A_IsUnicode ? "W" : "A" )
        , UInt,&InData, UInt,InDataLen, UInt,1, Str,OutData, UIntP,Req, "CDECL Int" )
Return TChars
} 
;============== END SCRIPT-1 =========================================================
Fichier-2

Code: Select all

;================== SCRIPT-2 =========================================================
;-https://autohotkey.com/board/topic/85709-base64enc-base64dec-base64-encoder-decoder/
SetWorkingDir, %A_ScriptDir%
GoSub, LoadPNGDATA
Bytes := Base64Dec( BIN, PNGDATA )
VarZ_Save( BIN, Bytes, "test.png" )
VarSetcapacity( PNGDATA, 0 )

Gui, Margin, 0, 0
Gui, Add, Picture,x1 y1 w100 h-1,test.png
Gui, Show
Return                             
;------------------

GuiClose:
 ExitApp
;==================

Base64dec( ByRef OutData, ByRef InData ) {
 DllCall( "Crypt32.dll\CryptStringToBinary" ( A_IsUnicode ? "W" : "A" ), UInt,&InData
        , UInt,StrLen(InData), UInt,1, UInt,0, UIntP,Bytes, Int,0, Int,0, "CDECL Int" )
 VarSetCapacity( OutData, Req := Bytes * ( A_IsUnicode ? 2 : 1 ) )
 DllCall( "Crypt32.dll\CryptStringToBinary" ( A_IsUnicode ? "W" : "A" ), UInt,&InData
        , UInt,StrLen(InData), UInt,1, Str,OutData, UIntP,Req, Int,0, Int,0, "CDECL Int" )
Return Bytes
}

VarZ_Save( ByRef Data, DataSize, TrgFile ) { ; By SKAN http://www.autohotkey.com/community/viewtopic.php?t=45559
 hFile :=  DllCall( "_lcreat", ( A_IsUnicode ? "AStr" : "Str" ),TrgFile, UInt,0 )
 IfLess, hFile, 1, Return "", ErrorLevel := 1
 nBytes := DllCall( "_lwrite", UInt,hFile, UInt,&Data, UInt,DataSize, UInt )
 DllCall( "_lclose", UInt,hFile )
Return nBytes
}

LoadPNGDATA:
pngdata=
(Ltrim join`r`n
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
)
return
;==================== END script-2 ====================================================

User avatar
SmX1
Posts: 3
Joined: 20 Feb 2021, 18:19

Re: BMP/JPG Dans un EXE ?

Post by SmX1 » 21 Feb 2021, 20:03

Oui, j'ai vu les posts de "SKAN" bcp y font référence,

mais il me semble que file install, justement installe le/les fichier(s) sur la machine qui exécute...

Je souhaite vraiment que mon projet soit une app portable.

Je vais quand même creuser sur cette voie, merci a toi.

User avatar
joedf
Posts: 8959
Joined: 29 Sep 2013, 17:08
Location: Canada
Contact:

Re: BMP/JPG Dans un EXE ?

Post by joedf » 21 Feb 2021, 20:13

Tu pourrais d'inspirer de la technique utilisée dans Ahk2Exe :
https://github.com/AutoHotkey/Ahk2Exe/blob/47b466807f8ad82e54018f62e9a62b4e1e8dba60/Ahk2Exe.ahk#L175

Code: Select all

;@Ahk2Exe-IgnoreBegin
Gui, Add, Pic, x29 y16 w240 h78, %A_ScriptDir%\logo.png
;@Ahk2Exe-IgnoreEnd
/*@Ahk2Exe-Keep
gosub AddPicture
*/

;...

/*@Ahk2Exe-Keep
AddPicture:
; Code based on http://www.autohotkey.com/forum/viewtopic.php?p=147052
Gui, Add, Text, x29 y16 w240 h78 +0xE hwndhPicCtrl
;@Ahk2Exe-AddResource logo.png
hRSrc := DllCall("FindResource", "ptr", 0, "str", "LOGO.PNG", "ptr", 10, "ptr")
sData := DllCall("SizeofResource", "ptr", 0, "ptr", hRSrc, "uint")
hRes  := DllCall("LoadResource", "ptr", 0, "ptr", hRSrc, "ptr")
pData := DllCall("LockResource", "ptr", hRes, "ptr")
hGlob := DllCall("GlobalAlloc", "uint", 2, "uint", sData, "ptr") ; 2=GMEM_MOVEABLE
pGlob := DllCall("GlobalLock", "ptr", hGlob, "ptr")
DllCall("msvcrt\memcpy", "ptr", pGlob, "ptr", pData, "uint", sData, "CDecl")
DllCall("GlobalUnlock", "ptr", hGlob)
DllCall("ole32\CreateStreamOnHGlobal", "ptr", hGlob, "int", 1, "ptr*", pStream)
hGdip := DllCall("LoadLibrary", "str", "gdiplus", "Ptr")
VarSetCapacity(si, 16, 0), NumPut(1, si, "UChar")
DllCall("gdiplus\GdiplusStartup", "ptr*", gdipToken, "ptr", &si, "ptr", 0)
DllCall("gdiplus\GdipCreateBitmapFromStream", "ptr", pStream, "ptr*", pBitmap)
DllCall("gdiplus\GdipCreateHBITMAPFromBitmap", "ptr", pBitmap, "ptr*", hBitmap, "uint", 0)
SendMessage, 0x172, 0, hBitmap,, ahk_id %hPicCtrl% ; 0x172=STM_SETIMAGE, 0=IMAGE_BITMAP
GuiControl, Move, %hPicCtrl%, w240 h78
DllCall("gdiplus\GdipDisposeImage", "ptr", pBitmap)
DllCall("gdiplus\GdiplusShutdown", "ptr", gdipToken)
DllCall("FreeLibrary", "ptr", hGdip)
ObjRelease(pStream)
return
*/
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x16GB Kingston FURY Beast - DDR4 3200 MHz | [About Me] | [About the AHK Foundation] | [Courses on AutoHotkey]
[ASPDM - StdLib Distribution] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library]

User avatar
SmX1
Posts: 3
Joined: 20 Feb 2021, 18:19

Re: BMP/JPG Dans un EXE ?  Topic is solved

Post by SmX1 » 24 Feb 2021, 06:44

Rebonjour....

Je dois encore tester sur un pc autre que le mien mais il semblerait que ouiiiiiiiiii, j'ai réussi.

J'étais pas trop chaud pour la méthode fileinstall mais je me suis dit "et si .... dans un endroit temporaire?"

IfNotExist, %A_Temp%\avatar.jpg
fileinstall, avatar.jpg, %A_Temp%\avatar.jpg

...

Gui, Add, Picture, x1 y1 w98 h98 , %A_Temp%\avatar.jpg


et cela semble fonctionner

Merci les gars :bravo:


Test fait, presque nickel.... reconnu comme virus par avast....pffff
Je suis sur kasperky et lui ne dit rien



Par contre,Avast est pas content ...

Post Reply

Return to “J'ai besoin d'aide”