AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 img2str

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: img2str   Jeu 8 Nov 2012 - 12:11

Bonjour,
Je m'ennuyais un peu ce matin alors j'ai (encore) fait un script légèrement inutile mrgreen2
Le script converti une image en un texte hexadécimal, qu'il écrit ensuite dans un fichier.
Voici le script :
Code:
/*
 * img2str(sprite img)
 * transforme une image en string
 */

posX=0; // position en X du sprite
posY=0; // position en Y du sprite
 
img=argument0;
w=sprite_get_width(img);
h=sprite_get_height(img);
result="";
global.etape=0;
global.nb_etapes=h*w;

for(i=0;i<h;i+=1)
    {
    for(j=0;j<w;j+=1)
        {
        value=dec2hexa(draw_getpixel(posX+j,posY+i),16);
        result+=string(value)+"";
        global.etape+=1;
        screen_redraw();
        }
    result+="#";
    }
return result;
L'image doit être affichée, modifiez posX et posY si nécessaire.
Il faut aussi la fonction dec2hexa (c'est Onilink qui l'a écrit, je l'ai retrouvé je sais pas où dans cette section) :
Code:
value = argument0
sret = ""
while(value >= argument1) {
    sret = string_insert( string_copy("0123456789ABCDEF", value mod argument1 + 1, 1) , sret, 0)
    value = value div argument1
}
return string_insert( string_copy("0123456789ABCDEF", value + 1, 1) , sret, 0)

Vous pouvez télécharger un executable qui vous permettra de tester avec n'importe quel jpg (par contre c'est vraiment très long donc prenez de petites images et ne vous découragez pas en regardant la barre de chargement mrgreen2 ). Appuyez sur n'importe quelle touche pour choisir une image.

Ca peut faire de beaux effets spéciaux pour un jeu du genre Matrix, sinon c'est complètement inutile mrgreen2
Revenir en haut Aller en bas
M@d_Doc
Modérateur
avatar

Messages : 6599
Localisation : 47°44'8.04
Projet Actuel : aucun

MessageSujet: Re: img2str   Jeu 8 Nov 2012 - 13:30

Le truc qui ralentit tout, c'est le draw_getpixel() qui est une fonction honteusement lente.
Si tu veux essayer d'améliorer la vitesse, tu peux voir pour:
enregistrer l'image en bmp sur le disque
lire le fichier bmp, le convertir en string

http://cbna.forumactif.com/t11227-lire-un-fichier-bmp


_________________
Tous les icones de gm utilisables sur le cbna ICI
Revenir en haut Aller en bas
http://www.lecbna.org
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: img2str   Jeu 8 Nov 2012 - 13:38

Oui, je me doutais bien qu c'était cette fonction qui ralentissait tout, près d'une minute pour une image de 100px de côté...
En tous cas merci du lien, mais j'ai la flemme de modifier mon truc mrgreen2
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: img2str   Jeu 8 Nov 2012 - 16:36

Tu devrait plutôt faire un convertisseur en base 64, ça ferais un texte en sorti bien plus léger :b

_________________
                 
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: img2str   Jeu 8 Nov 2012 - 16:41

Ouais, en plus je viens de me rendre compte que pour chaque pixel, il écrit toute la couleur en hexa, soit 3 caractères....
Je le modifierait quand j'aurais le temps et l'envie mrgreen2
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: img2str   Jeu 8 Nov 2012 - 17:17

Normalement ce serais plutôt 6 caractères par pixels :b

_________________
                 
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
avatar

Messages : 2213
Localisation : Oui

MessageSujet: Re: img2str   Jeu 8 Nov 2012 - 17:19

Euh oui autant pour moi.... je sais même plus compter maintenant... sweat
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: img2str   

Revenir en haut Aller en bas
 
img2str
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Scripts GML-
Sauter vers: