AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Cartes Pokémon 151 : où trouver le ...
Voir le deal

 

 img2str

Aller en bas 
3 participants
AuteurMessage
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

img2str Empty
MessageSujet: img2str   img2str EmptyJeu 8 Nov 2012 - 13: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
M@d_Doc


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

img2str Empty
MessageSujet: Re: img2str   img2str EmptyJeu 8 Nov 2012 - 14: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

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


_________________
img2str Control-commentTous les icones de gm utilisables sur le cbna ICI  img2str Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

img2str Empty
MessageSujet: Re: img2str   img2str EmptyJeu 8 Nov 2012 - 14: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
onilink_


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

img2str Empty
MessageSujet: Re: img2str   img2str EmptyJeu 8 Nov 2012 - 17:36

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

_________________
img2str Runningpotato1img2str TvF6GED img2str MdetltS
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

img2str Empty
MessageSujet: Re: img2str   img2str EmptyJeu 8 Nov 2012 - 17: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
onilink_


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

img2str Empty
MessageSujet: Re: img2str   img2str EmptyJeu 8 Nov 2012 - 18:17

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

_________________
img2str Runningpotato1img2str TvF6GED img2str MdetltS
Revenir en haut Aller en bas
Térence
Utilisateur confirmé: Rang *****
Térence


Messages : 2213
Localisation : Oui

img2str Empty
MessageSujet: Re: img2str   img2str EmptyJeu 8 Nov 2012 - 18:19

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





img2str Empty
MessageSujet: Re: img2str   img2str Empty

Revenir en haut Aller en bas
 
img2str
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: