Page 2 sur 4

Publié : ven. 21/déc./2007 13:28
par gnozal
djes a écrit :Franchement, à quoi ça sert puisqu'on peut faire des includebinary nativement dans purebasic?
Le code source se suffit à lui-même, sans dépendre de fichiers extérieurs (*.ico ...).
Très utile aussi pour les archives de codes (j'utilise PureTemplate), on peut extraire le code du ZIP et l'exécuter, sans devoir décompresser en plus d'éventuels fichiers associés.

Publié : ven. 21/déc./2007 13:48
par djes
Ok, merci pour vos réponses :)

Re: test

Publié : sam. 22/déc./2007 0:15
par beauregard
Dobro a écrit :tu as utilisé le dernier listing du topic ou le premier ?
parce que seul le dernier est valable !!(je vais effacer le premier)
bien, alors je viens de refaire les tests...
Dobro a écrit :je viens de le tester sur une image de 2048 par 1536
et c'est nikel !! ..
... et avec un png, l'image n'est pas bien restituée( décalage). Pour un jpeg de 1024*768, l'image est parfaitement restituée, et cela donne un code de 39380 lignes*, ce qui est toujours impressionant ! ;) bon, j'imagine que la technique de l'include est de l'ordre du vital dans ce cas là.

je n'ai pas encore eu le temps de tester sérieusement la fonction disponible avec jaPBe, donc c'est une affaire à suivre...

*pb est un peu à la peine pour compiler tout çà.

Re: test

Publié : sam. 22/déc./2007 1:43
par Backup
beauregard a écrit :. et avec un png, l'image n'est pas bien restituée( décalage).
ha ? faut que j'essais avec un png alors .. :)

Pour un jpeg de 1024*768, l'image est parfaitement restituée, et cela donne un code de 39380 lignes*, ce qui est toujours impressionant ! ;) bon, j'imagine que la technique de l'include est de l'ordre du vital dans ce cas là.
*pb est un peu à la peine pour compiler tout çà.
c'est pour ça que je conseille d'utiliser le prg img2Data seulement pour des images ayant la taille de 1027x768 Maximum !!

c'est clair que sinon ça rame et en plus le code generé deviens indecent de longueur :)

l'ideal etant un format du style 32x32 64x64 128x128 256x256
pour ce type d'include d'image par Data ..

Publié : sam. 22/déc./2007 16:17
par Fortix
1 point pour Denis :D

Re: LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version

Publié : lun. 24/déc./2007 17:50
par beauregard
Fortix a écrit :Salutation :D ,
Je viens de créer un petit programme qui poura vous faciliter la tache;
Ce prog consiste à convertir une image (touts formats) en base de données DataSection en plus de son lecteur Data pour reconstituer l'image
Après avoir testé ton code, et bien je tiens à te dire merci ! :D
voici le résultat de mes tests:
640*480, durée 1minute environs, pour 480 lignes de data.
4096*75, durée moins de 30 secondes, pour 75 lignes de data.
ces 2 images ont le même nombre de pixels( 307.200 pixels), mais pas le même nombre de ligne. C'est logique, mais il faudra privilégier des images plus larges que hautes( ce qui est aussi le cas pour limiter le nombre de condition incluant clipsprite).

j'ai aussi testé une image de 4096*375, durée d'environ 5 minutes( 375 lignes) un executable de 12 Mo quand même.

j'ai voulu tester une image de 4096*1152, mais là, après une demi-heure, j'ai perdu patience. Je n'ose imaginer un test sur la limite maximale autorisé, à savoir 8192*8192...

une petite modif du code pour avoir un sprite:

Code : Tout sélectionner

                            AddGadgetItem(#Editor_0, 0, "If CreateSprite("+Num_$+", "+Str(L)+", "+Str(H)+",0)")
                            AddGadgetItem(#Editor_0, 1, "") 
                            AddGadgetItem(#Editor_0, 2, "    StartDrawing(SpriteOutput("+Num_$+"))")
                            AddGadgetItem(#Editor_0, 3, "")         
                            AddGadgetItem(#Editor_0, 4, "        Restore "+Label_$)
                            AddGadgetItem(#Editor_0, 5, "")                               
                            AddGadgetItem(#Editor_0, 6, "        For ay=0 To "+Str(H)+"-1")
                            AddGadgetItem(#Editor_0, 7, "            For ax=0 To "+Str(L)+"-1")
                            AddGadgetItem(#Editor_0, 8, "")           
                            AddGadgetItem(#Editor_0, 9, "                Read a.l")
                            AddGadgetItem(#Editor_0, 10, "                Plot(ax,ay,a.l)")
                            AddGadgetItem(#Editor_0, 11, "")                           
                            AddGadgetItem(#Editor_0, 12, "            Next ax")
                            AddGadgetItem(#Editor_0, 13, "        Next ay")           
                            AddGadgetItem(#Editor_0, 14, "    StopDrawing()")
                            AddGadgetItem(#Editor_0, 15, "")   
                            AddGadgetItem(#Editor_0, 16, "    ay=0")
                            AddGadgetItem(#Editor_0, 17, "    ax=0")
                            AddGadgetItem(#Editor_0, 18, "EndIf")                           
                            AddGadgetItem(#Editor_0, 19, "")
                            AddGadgetItem(#Editor_0, 20, "")

Re: LE CONVERTISSEUR IMAGE/DATA POUR ****TOUS**** (Version

Publié : lun. 24/déc./2007 17:55
par beauregard
et une autre petite modif du code pour avoir un sprite3D, attention toutefois à ne pas être trop gourmand, en respectant la limitation de 512*512( selon la carte vidéo de votre machine):

Code : Tout sélectionner

                            AddGadgetItem(#Editor_0, 0, "If CreateSprite("+Num_$+", "+Str(L)+", "+Str(H)+",#PB_Sprite_Texture)")
                            AddGadgetItem(#Editor_0, 1, "") 
                            AddGadgetItem(#Editor_0, 2, "    StartDrawing(SpriteOutput("+Num_$+"))")
                            AddGadgetItem(#Editor_0, 3, "")         
                            AddGadgetItem(#Editor_0, 4, "        Restore "+Label_$)
                            AddGadgetItem(#Editor_0, 5, "")                               
                            AddGadgetItem(#Editor_0, 6, "        For ay=0 To "+Str(H)+"-1")
                            AddGadgetItem(#Editor_0, 7, "            For ax=0 To "+Str(L)+"-1")
                            AddGadgetItem(#Editor_0, 8, "")           
                            AddGadgetItem(#Editor_0, 9, "                Read a.l")
                            AddGadgetItem(#Editor_0, 10, "                Plot(ax,ay,a.l)")
                            AddGadgetItem(#Editor_0, 11, "")                           
                            AddGadgetItem(#Editor_0, 12, "            Next ax")
                            AddGadgetItem(#Editor_0, 13, "        Next ay")           
                            AddGadgetItem(#Editor_0, 14, "    StopDrawing():CreateSprite3D ( "+Num_$+"3D , "+Num_$+" )")
                            AddGadgetItem(#Editor_0, 15, "")   
                            AddGadgetItem(#Editor_0, 16, "    ay=0")
                            AddGadgetItem(#Editor_0, 17, "    ax=0")
                            AddGadgetItem(#Editor_0, 18, "EndIf")                           
                            AddGadgetItem(#Editor_0, 19, "")
                            AddGadgetItem(#Editor_0, 20, "")

perplexe

Publié : lun. 24/déc./2007 18:05
par beauregard
gnozal a écrit :Pour info (et pour les utilisateurs de jaPBe) : Menu Outils -> IncludeBinary permet d'inclure des fichiers (image ou pas) sous forme de datas
Une explication pas à pas me sera nécessaire pour comprendre comment on peut afficher une image résultant de ces joyeux data:

Outils/IncludeBinary, puis je coche Data, je clique fébrilement sur OK, et là, je me retrouve avec 2 datasection rigoureusement identique. Je prend sur moi, et j'en supprime une, et maintenant... qu'est ce que je fais ?

manuel: IncludeBinary inclut le fichier nommé à l'endroit où la commande est placée.
gnozal a écrit :Le code nécessaire à la décompression est créé.
je ne comprend pas où...

Re: perplexe

Publié : lun. 24/déc./2007 18:11
par Backup
beauregard a écrit :
gnozal a écrit :Le code nécessaire à la décompression est créé.
je ne comprend pas où...
la premiere ligne est du genre

Code : Tout sélectionner

;  IncludeBinary "entertainer1.jpg" [?entertainer1_jpg_Start , ?entertainer1_jpg_End]
il te suffit de retirer le ";" pour en faire une ligne valide
ton image sera inclue automatiquement ...

pour la lire, tu fait comme d'habitude lorsque tu utilise des image inclues :)

Publié : lun. 24/déc./2007 22:37
par Fortix
Salut beauregard et bonne fête de Noël à toi :D ;


éffectivement, tous les tests n'ont pas été réalisés;

mais il suffit d'un rien pour corriger cette érreur; :D

figure toi beauregard qu'il te suffit de supprimer (avec précaution si possible) l'éditeur de text, car il est réellement responsable des lenteur occasionné par de grandes images; une fois l'éditeur supprimé tu gagneras jusqu'à 100%-(n%<50%) :lol:

mais une fois l'éditeur supprimé tu ne pourras donc plus savoir quant le code Data à put être achevé: la solution : le signal sonor lui seul poura t'indiquer le moment où tu pouras éffectuer un coller (sans copier :idea: )
dans ton code en cours d'édition directement :D

Publié : mar. 25/déc./2007 10:57
par beauregard
Fortix a écrit :Salut beauregard et bonne fête de Noël à toi :D ;
Joyeuses fêtes de fin d'année à tous et à toutes ! :D

Publié : mar. 25/déc./2007 16:24
par Fortix
Rectif

je rectifies: il ne faut pas supprimer l'éditeur (sinon rien ne fonctionnera)

mais il faut tous simplement cacher l'éditeur avec HideGadget(#Gadget, Etat) pendant la création des Datas et dès qu'il aura finit il faudra le faire réaparaître mais ça c'est vous qui voyez :D

Publié : ven. 15/mai/2009 19:49
par beauregard
Fortix a écrit :voyez :D
je vois :)

je suis passé au choses sérieuses, et je commence à convertir mes images en data...
Pour une image pesant 1524 Ko convertis en data, en créant une exécutable de mon jeu, celui-ci grossis de... 7680 Ko !

j'avoue avoir un peu peur pour la suite, et je n'ose imaginer la taille gargantuesque que risque d'avoir l'exe final ! :?

Publié : ven. 15/mai/2009 20:14
par Backup
pourquoi tu les mets en data ??

pourquoi ne pas les inclures dans l'exe ?

Publié : ven. 15/mai/2009 20:26
par beauregard
Dobro a écrit :pourquoi tu les mets en data ??

pourquoi ne pas les inclures dans l'exe ?
heu, oui mais comment fait-on ? avec includebinary ?