Comment mettre le code d'une image dans son code ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Comment mettre le code d'une image dans son code ?

Message par Geo Trouvpatou »

Salut.

Je maitrise la chose en ce qui concerne de mettre l'image en include binarie :

Code : Tout sélectionner

CatchImage(#IMAGE_iconeHelp, ?iconeHelp)

DataSection
    iconeHelp    : IncludeBinary "images/Help.bmp"
EndDataSection

; Ensuite dans le code, utilisation de ImageID(#IMAGE_iconeHelp)
Maintenant j'ai vu 2 façons d'incruster le code d'une image dans la source.
La 1ère avec JaPBe : En faisant Alt + x en cherchant son image, en cochant Data et en cliquant sur OK.

On obtient le code ci-dessous.
Déjà, je n'ai jamais compris comment s'en servir.
Et surtout, condition obligatoire, est-ce compatible Linux.

Code : Tout sélectionner

;  IncludeBinary "trombone.png" [?trombone_png_Start , ?trombone_png_End]
;{ Size = 3684 bytes
DataSection
trombone_png_Start:
Data.l $474E5089,$0A1A0A0D,$0D000000,$52444849,$10000000,$10000000,$00000308,$0F2D2800,$00000053,$59487009,$0B000073,$0B000013
Data.l $9A000113,$0000189C,$43694F0A,$68505043,$736F746F,$20706F68,$20434349,$666F7270,$00656C69,$9DDA7800,$53546753,$F73D16E9
Data.l $4B42F4DE,$4B948088,$0815526F,$8B425220,$26911480,$1009212A,$A121884A,$C15115D9,$04454511,$88A0C81B,$808E8E03,$2C51158C
Data.l $D80A8A0C,$A221E407,$88A3838E,$E1FBCA8A,$D66BA37B,$CDE6F7BC,$3ED7B5FE,$9DF3ACE7,$C007CFB3,$48960C08,$80355133,$1E42A90C
Data.l $C783E011,$E4E1C6C4,$0A81402E,$10007024,$2164B308,$0123FD73,$3C7EF800,$C0222B3C,$0100BE07,$080BD378,$9B4DC000,$871C30C0
Data.l $42EA0FFF,$80015C99,$74C00184,$084B3891,$40001480,$A6428E7A,$01464000,$26989D80,$04A00053,$63CB6000,$5000E362,$2760002D
Data.l $00D3E67F,$99F89D80,$5B00017B,$01152194,$200091A0,$44886513,$003B6800,$8A56CFAC,$30580045,$4B661400,$D80039C4,$4930002D
Data.l $00486657,$C000B7B0,$B20B10CE,$000C0800,$85885130,$7B040029,$23C86000,$84007823,$46140099,$F13C57F2,$E710AE2B,$7800002A
Data.l $B93CB299,$81453924,$712D085B,$2E575707,$49CE281E,$36142B17,$9A610261,$79C22E40,$81321999,$F3E00F34,$A00000CC,$E0111591
Data.l $78FDF383,$CEAE0ECE,$B68E36CE,$EA2D5F0E,$22FF06BF,$FEE36262,$70ABCFE5,$E1000040,$FED17E74,$1AB32F2C,$80063B80,$25A2FE6D
Data.l $5E6804EE,$F775A00B,$0FB2668B,$A000B540,$F357DAE9,$3C7EF870,$90A1453C,$E5D9D9B9,$4AD8E4E4,$615B42C4,$FE7D57CA,$C05FC267
Data.l $F96CFD57,$F7FC3C7E,$E2BEE0F5,$5D328124,$F8044781,$F4CCC2E0,$CF1CA54C,$62840992,$478FE6DC,$FF0BB7FC,$22D31DFC,$B96249C4
Data.l $E3142A58,$8E711251,$F38C9A44,$8922A532,$C5299242,$64FFD225,$FB2CDFE2,$35DF3E03,$3E6AB000,$2D917B01,$03635DA8,$10274BF6
Data.l $E2C07458,$F20000F7,$D4C16FBB,$80030828,$CFE18368,$3FEFFF77,$25A047FD,$49668000,$00007192,$2E24445E,$3FB3CA54,$000008C7
Data.l $2A81A044,$F41B41B0,$C02C18C1,$05C11C06,$FC0BC1DC,$42843660,$42C2C424,$640A4210,$60721C80,$4282AC29,$B0CD8628,$2F602A1D
Data.l $341D40D4,$866851C0,$2E0E7093,$0EB855C2,$FA0F703D,$C19E0861,$0981BC28,$08C84104,$DA216113,$8A620188,$088E2358,$F8859917
Data.l $0448C121,$20248B12,$511488C9,$35914B22,$8A523148,$48552054,$723DF21D,$5C873902,$3B91BA46,$823200C8,$47BC86FC,$B2819431
Data.l $0CD43D51,$A8B943B5,$46841A37,$64D00BA2,$8F9A3174,$D09BA016,$3D1AB472,$E7A1368C,$0F68ABD0,$433E8FDA,$E8C030C7,$C4330718
Data.l $C62E306C,$38B142C3,$6393092C,$AC22B1CB,$1AC6AB0C,$03AC56B0,$63F589BB,$0477B1CF,$C0458112,$77043609,$1E612042,$4C584841
Data.l $48D84E58,$241C20A8,$09DA1134,$84030937,$2227C251,$B44BA893,$F911BA26,$326218C4,$48588731,$12D6232C,$102F138F,$C443887B
Data.l $89122437,$B9273243,$B1490290,$12D254A4,$6ED246D2,$2CE92352,$48349BA9,$C993231A,$B26B64DA,$2C943907,$85C82B20,$C3E49DE4
Data.l $1BE433E4,$5BF221E4,$40629D0A,$53F8A471,$CA5228E2,$E5194A6A,$E534E510,$32986506,$9AA35541,$A1A8DD52,$8F351154,$A1AD425A
Data.l $51AF52B6,$3413A887,$CD399A75,$4B491683,$95A2ADA5,$17681AD3,$AF69F768,$11BA74E8,$4E1E95DD,$D257D097,$E847E9CB,$F403E897
Data.l $860D0C77,$88C78315,$9B192867,$67180718,$AF187719,$19A64C98,$C7198BD3,$31373054,$99E798EB,$556F990F,$2AB62A58,$CA91157C
Data.l $954A950A,$2A1B9526,$AAA9542F,$AADEAAA6,$55F3550B,$A98F54CB,$AE7D535E,$53335546,$D409A9E3,$AA55AB96,$53EB509D,$A967531B
Data.l $AA87A83B,$546FA867,$597EA43F,$590689FD,$4FC34CC3,$A051A443,$BCE35FB1,$630B20C6,$2C78B319,$AB0D6B21,$35817586,$CDB126C4
Data.l $2A767CD9,$1DFD98BB,$AA3D8BBB,$4339A1A9,$57334A33,$94F352B3,$E3073F66,$9CF87198,$E7094E74,$F397A728,$14DE8A7E,$29E229EF
Data.l $4C34A61B,$5C6531B9,$9796AA6B,$48AB5896,$47AB51AB,$AE36BDEB,$A69DA7ED,$59BB45BD,$410E81FB,$5C274AC7,$8F674727,$E79D05CE
Data.l $DD53D953,$16A70AA7,$F53A3D4D,$6BAA2EAE,$BBA11BA5,$6EBF7744,$9E98EEA7,$9E805EBE,$DEA76F4C,$FAE7BD79,$FD2F7D1C,$FA6DFD54
Data.l $0C47F5A7,$0CB30658,$0CDB0624,$C53C18CE,$3C6F7135,$DBC72F1D,$5D4351F1,$A54340C3,$97619561,$B99184E1,$D5A33CD1,$0F468D46
Data.l $5CC6698C,$6DE324E3,$A3C66DC6,$21260626,$EA4D4B26,$529AEE4D,$29A6B94D,$3B4C3BA6,$CCCDC74C,$D6CDA2CD,$3D9B3599,$E732D731
Data.l $D79BE79B,$60B7DF9B,$2C5A785A,$B8B6A8B6,$E4B24965,$EE59A65A,$856EBCB6,$A559395A,$5D5A5558,$9DAD46B3,$BBD625AD,$11A7BBAD
Data.l $934EB9A7,$D69EAB4E,$F1B0C367,$A9B6C9B6,$E5B019B7,$AEDB06D8,$7DB66DB6,$17626761,$AEC5B767,$BD93EEC3,$7DBA7D93,$073DFD8D
Data.l $0ED9870D,$1D5A1DAB,$72B4737E,$3A563A14,$9CCE9ADE,$C57D3FEE,$2FE996F4,$10CF5867,$E333D8CF,$29CB13B6,$539D69C4,$6747D39B
Data.l $73B96717,$8B88F383,$CB824B89,$2E3E972E,$DDC61B9B,$4AE4BDC8,$5D71F574,$F5D27AE1,$9BB39B9D,$DBA8EDC2,$EE36EEAF,$DC87EE69
Data.l $9F34CC9F,$33599E29,$C8C3D073,$E551E043,$9F0B3FD1,$DF6B3095,$434F7EAC,$B567814F,$632F23E7,$AD57912F,$A5B7B0D7,$61F7AA77
Data.l $F63E17EF,$E39F723E,$373CE33E,$59DE32DE,$C037CC5F,$CBB7C8B7,$9E6FC34F,$43DF855F,$64FF237F,$D1FF7AFF,$2580A700,$89036701
Data.l $5B814181,$7AF8FB02,$8EBF217C,$65DB3A3F,$EDD9B2F6,$B9A08C41,$8F411541,$E582AD82,$6821ADC1,$AD90ECC8,$98E7F721,$69CE91CE
Data.l $7E50850E,$07D0D6E8,$8B61E661,$270C7EC3,$57858785,$708E3F86,$D11A5888,$77359731,$7343DCD1,$44FA44DF,$9BDE4496,$394F3167
Data.l $354A2DAF,$2EAA3E2A,$37DA3C6A,$3FBA34BA,$59662EC6,$9D58D5CC,$4B6C4958,$2A2E391C,$6C6E36AE,$EDFCDFBE,$9DE287F3,$7BE30BE2
Data.l $C82F9817,$A179705D,$85F4C2CE,$2EA916A7,$963A2C12,$4E884C40,$41F09438,$16A82A10,$13F2258C,$0A8E2577,$C21DC279,$D12F2267
Data.l $D888D136,$1E2A5C43,$2A48F24E,$EC927A4D,$7935BC91,$A533C524,$84B9E52C,$BC90A927,$DD4C0D4C,$169E3A9B,$6D20769A,$BD3A3D32
Data.l $91928331,$AA427190,$B6934D21,$E667EA67,$ACCB7666,$FEB28565,$B78B6EC5,$07951E2F,$90B36BC9,$2D5905AC,$A642B60A,$285A54E8
Data.l $B2072AD7,$66576567,$CA89CDBF,$9EAB9639,$CCEDCD2B,$90DBCAB3,$9FEF9C37,$C212EDFF,$B692E112,$574B86A5,$E6581D2D,$396AACBD
Data.l $79713CB2,$15E30ADB,$56862B05,$B83CAC06,$6D2AB68A,$EDAB4FD5,$7EAE9757,$4D7A26BD,$C15E816B,$B5C182CA,$0BEB6B01,$85E50A55
Data.l $D7DCEB7D,$584F5DED,$B5DF592F,$9D86FA61,$89153E1B,$DB14AE8A,$7F159717,$78DC28D8,$6F871BE5,$DC99BFCA,$ABA9B494,$CF64B9C4
Data.l $E966D266,$9E2DDEE6,$AA960E5B,$0E97E697,$DAD90D6E,$56DF0DB4,$F6F5EDB4,$972FDB45,$BBDB28CD,$B943B683,$B83CBFA3,$C9A765BC
Data.l $3F3BCDCE,$F454A454,$3654FA54,$B5DDD2EE,$6EF8D761,$7B1BEED1,$EC34F6BC,$BC5BDBD5,$C93EFDF7,$0155DBBE,$66D54D55,$49FB65D5
Data.l $3FF7B3FB,$E9AA89AE,$6DFB96F8,$6D4EAD5D,$03C7ED71,$07FD03D2,$D7B60E23,$1DD5D4B9,$52543DD2,$EB2BD68F,$1FC70E47,$EF9DFEBE
Data.l $360D2D77,$9C8D550D,$7023E2C6,$E9E47944,$F7DF09F7,$DA3A0D1E,$AC7B8C76,$1FD307E1,$1D671D76,$9A426A2F,$9B469AF2,$5BFB9A53
Data.l $4FBA5B62,$D6D13ECC,$FC7ADEEA,$0F1FDB47,$593C349C,$54F34A79,$E9DA69C9,$6793D382,$9D8CCFF2,$7E7D9D95,$60DCF92E,$7BB6A2DB
Data.l $DFCE63E7,$EF6F0F6A,$E17410BA,$8BFF45D2,$3BBC3BE7,$B8F25CCE,$DBB2F274,$B85713E5,$3AAF9A57,$74EA6D5F,$93FE3CEA,$BBC74FD3
Data.l $AE9ABB9C,$B96B5CB9,$B5BD7AEE,$E9F7667B,$CE379E1B,$79BDF4DD,$D6FF16F1,$3D399ED5,$7AF3BDDD,$F7C5F76F,$DD16DFF5,$FD27727E
Data.l $D9BBCBCE,$ADEE2777,$5FBC4FBC,$41ED40F4,$87DD43D9,$FE5B3FD5,$DCEFD8DC,$77C06A7F,$DCD1F3A0,$8506F747,$91FECF83,$430F8FF5
Data.l $8F998F05,$860D86CB,$3E389EEB,$3FE23939,$FCE9FD72,$64CF43A7,$179E26CF,$CBFEA2FE,$2F1617AE,$EBD5F87E,$98D1CED7,$F297A1D1
Data.l $6DBF9397,$EAFDA57C,$AF19EBC0,$C6C2C6DB,$78C9BE1E,$F45E3133,$C1EDFB56,$1D77DC77,$0FDFA3EF,$207CE44F,$68FF287F,$53F5B1F9
Data.l $93FBA7D0,$FF939319,$F3980304,$2D3363FC,$000000DB,$4D416704,$B1000041,$51FB7C8E,$00000093,$52486320,$7A00004D,$80000025
Data.l $F9000083,$800000FF,$750000E9,$EA000030,$3A000060,$17000098,$C55F926F,$03000046,$544C5000,$00000045,$C6FFFFFF,$8484C6C6
Data.l $FFFFFF84,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
Data.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$5DB5C200,$00000002,$4E527405
Data.l $FFFFFF53,$B6FB00FF,$0000530E,$44496200,$DA785441,$0E418F54,$C40830C4,$FFFE133C,$43D869E2,$66E5D443,$E2A12C0B,$281CBE7F
Data.l $E57B61FC,$DDED108A,$8A24E72B,$46CF88BA,$FA02EAD4,$E0038715,$32EA2B0F,$36AE8D44,$C9AC1751,$3DDAD1BC,$D4C68359,$C3805744
Data.l $9F91FB2C,$76A18C3D,$79AA32FB,$006FCCF3,$29365CE1,$3C846F35,$00000000,$444E4549,$826042AE
trombone_png_End:
EndDataSection ;}
La 2ème façon de faire ressemble un peut à la 1ère, mais il n'y a le mot de départ dans la data section qu'au début et pas à la fin comme ci-dessus : "trombone_png_End:"

Exemple dans le code de Comtois que j'ai mis ici.
Il y a :

Code : Tout sélectionner

DataSection 
 TestImage: 
  Data.b $89,$50,$4E,$47,$0D,$0A,$1A,$0A,$00,$00,$00,$0D,$49,$48,$44,$52 
  Data.b $00,$00,$00,$30,$00,$00,$00,$30,$08,$06,$00,$00,$00,$57,$02,$F9

... 

Data.b $B7,$00,$00,$00,$00,$49,$45,$4E,$44,$AE,$42,$60,$82 
EndDataSection
TestImage: n'est mis qu'au début.
Donc questions : Avec quoi à été généré le code et est-ce compatible Linux.

Comment s'en servir ?
[EDIT] Bon j'imagine que c'est comme l'include binarie que je maitrise CatchImage(2, ?TestImage)

Bye.
allasktulu
Messages : 34
Inscription : sam. 29/nov./2008 22:42

Message par allasktulu »

Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Re: Comment mettre le code d'une image dans son code ?

Message par flaith »

Geo Trouvpatou a écrit :Déjà, je n'ai jamais compris comment s'en servir.
Et surtout, condition obligatoire, est-ce compatible Linux.
pour s'en servir (tous OS) :

Code : Tout sélectionner

UsePNGImageDecoder()

If OpenWindow(0, 100, 100, 500, 300, "PureBasic - Image")

  CatchImage(0, ?trombone_png_start)
  ImageGadget(1,0,0,200,200,ImageID(0))
        
  Repeat
    EventID = WaitWindowEvent()
    
  Until EventID = #PB_Event_CloseWindow
  
EndIf

End

;Mettre ta datasection ici
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Merci allasktulu.

Je m'en doutais un peu (Même si j'avais perdu le post).
D'ailleurs je sais qu'une autre personne sur la base du code de Dobro avait fait quelque chose.
Mais je suis quand même un peu étonné qu'aucun outil de ce genre avec l'éditeur officiel n'existe.

Par contre l'utilisation du code code créé avec JaPBe reste en suspend.

Bye.
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Ahhh! Merci Flaith, c'était tellement simple mais ce qui m'a mit dedans c'est le code généré par JaPBe mit en commentaire :

Code : Tout sélectionner

;  IncludeBinary "trombone.png" [?trombone_png_Start , ?trombone_png_End]
Quand j'ai vu ça : [?trombone_png_Start , ?trombone_png_End] cela m'a déstabilisé.

Et bien je suis bien content, je me posait ces questions depuis quelques temps.

J'irais me coucher moins idiot ce soir :lol:

Merci à tout les 2.
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

Je rectifie parce que j'ai l'impression que le code de Comtois n'a pas été fait avec le code de Dobro.

[EDIT] Ce n'est plus une impression mais quelque chose de sûr.
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

Bonjour,

petite question, je viens de tester le code de flaith sur ubuntu 9.04 et les datas de Geo Trouvpatou.

tout fonctionne normalement mais j'aurais voulu savoir pourquoi, des que j'enlève quelques datas ( 10 lignes ) PureBasic me renvoie une erreur sur ImageID(0) ?

merci




@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

venom a écrit :Bonjour,

petite question, je viens de tester le code de flaith sur ubuntu 9.04 et les datas de Geo Trouvpatou.

tout fonctionne normalement mais j'aurais voulu savoir pourquoi, des que j'enlève quelques datas ( 10 lignes ) PureBasic me renvoie une erreur sur ImageID(0) ?

merci




@++
Les lignes que tu as enlevé font que la longueur de ton image diminue, comme la librairie "PNG" prend les infos de l'image (qui se trouve dans les datas) et les compare à sa longueur totale (de la datasection) : comme il est indiqué que l'image fait X octets et que tu enlève des données et bien il y a une différence logique, d'où l'erreur
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

Les lignes que tu as enlevé font que la longueur de ton image diminue, comme la librairie "PNG" prend les infos de l'image (qui se trouve dans les datas) et les compare à sa longueur totale (de la datasection) : comme il est indiqué que l'image fait X octets et que tu enlève des données et bien il y a une différence logique, d'où l'erreur
ok merci pour l'info flaith.




@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Message par Geo Trouvpatou »

flaith a écrit :Les lignes que tu as enlevé font que la longueur de ton image diminue, comme la librairie "PNG" prend les infos de l'image (qui se trouve dans les datas) et les compare à sa longueur totale (de la datasection) : comme il est indiqué que l'image fait X octets et que tu enlève des données et bien il y a une différence logique, d'où l'erreur
Je me disais bien que ça devait être un truc du genre parce que sinon comment PB pourrait savoir qu'il peut s'arrêter à tel ou tel data.

Merci pour cette info Flaith.

Au départ je croyais que chaque datas correspondait à la couleur d'1 pixel, mais après je suis revenu sur ma supposition en pensant à la couche Alpha, et je me suis dit que cela devait être un peu plus complexe que ça.

Bye.
Répondre