CRÉATION IMAGE BITMAP ALÉATOIRE OU COMME VOUS VOULEZ :)

Signaler
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
-
Messages postés
43
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
3 mai 2010
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/18859-creation-image-bitmap-aleatoire-ou-comme-vous-voulez

Messages postés
43
Date d'inscription
lundi 19 avril 2004
Statut
Membre
Dernière intervention
3 mai 2010
4
Ton code est très pratique mais j'ai rencontré un léger bug qui peut apparaître. Un décalage dans les couleurs. Pour régler le problème, j'ai du recourir à la force brute. Je place le pointeur manuellement au bon endroit pour chaque pixel. Je sais, c'est plus long mais ça m'a permis de corriger le bug. Bug qui ne doit pas venir de ton programme mais de la gestion de la mémoire par visual. Il n'est donc pas utile d'appliquer la modif pour ceux qui n'ont pas rencontré le bug. Ca donne quelque chose comme ça :


Ccolor c; //classe maison
fpos_t off;
fpos_t pos;
fgetpos( stream,&off );
unsigned char val;


for(unsigned long i=0; i<hauteur*largeur; i++)
{
c = mText->getRGB(i);

pos = off + i*3;
fsetpos( stream,&pos );

val = (unsigned char)(c.b*255);
fwrite(&val,1,1,stream);

val = (unsigned char)(c.g*255);
fwrite(&val,1,1,stream);

val = (unsigned char)(c.r*255);
fwrite(&val,1,1,stream);
}
Messages postés
57
Date d'inscription
samedi 14 décembre 2002
Statut
Membre
Dernière intervention
2 mai 2005

Pour les sockets j'ai récupéré une source d'objets sockets sur le net super pratique (licence GPL) je fais mes projets avec ca maintenant :)
Si ca t'intéresse jte l'enverrai.
++hellaynnea
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
pour les points je pense que les messages sur le forum comptent beaucoup.
pour les sockets tu pourra trouve des tuto ici
http://www.programmation.org/tutoriaux/tutoriaux_prog/tutoriaux.php?lang=reseau

et si jamais ta besoin d'aide laisse un message sur le forum(moi j'y connai rien au sockets)
a+
Messages postés
55
Date d'inscription
mardi 16 septembre 2003
Statut
Membre
Dernière intervention
4 août 2008

Non djl, dans l'exemple que j'ai écrit, le choix de la couleur pour chaque pixel du dessin se fait par implémentations successives (d'abord du rouge, puis du vert et enfin du bleu). Je pense que tu as du le voir tout seul, car j'ai vu quelques unes de tes sources, et tu es vraiment fort, j'ai vu que tu faisais même de la programmation OpenGL (effet de l'eau qui ondule, trop cool). Mais tu peux très bien changer à ton gré l'algorithme d'écriture pour chaque pixel du dessin. On peut donc très bien imaginer mettre un niveau de vert, bleu et rouge pour chaque pixel de façon aléatoire, en faisant simplement un random(256) pour le bleu, le vert et le rouge (c'est pour ca que j'avais mis les headers time.h et stdio.h ou stdlib.h, je sais plus).
Mais l'image obtenue n'est pas agréable du tout, ça ne ressemble a rien (tu peux t'en douter puisque c'est aléatoire...). J'avais écrit le code de cette manière au début, mais je l'ai ensuite changé en écrivant chaque couleur avec une fonction sinus pour faire un dégradé sur les couleurs, puis je l'ai écris comme il est dans le zip. Mais les goûts et les couleurs....
Donc voilà, j'espère que mon explication t'a plut.

Sinon, en ce moment je me concentre un peu sur les sockets, j'aimerais faire un petit outil de communication entre deux PC distants, ça m'interesse, mais la je débute simplement, je ne comprends pas encore tout. Voilà, encore merci pour tout vos commentaires, et si quelqu'un peut m'aider (djl par exemple :) lol)
sur les sockets avec des trucs intéressants, qu'il n'ésite pas...

Au fait, j'ai vu qu'il y a un classement sur cppfrance qui donne les personnes les plus actives sur le site, avec un système de points, mais moi, lorsque j'ajoute une source par exemple, je ne recois pas de points, alors que c'est ce qui donne le plus de points d'après les explications de Nix je crois. En ce moment je n'ai que 3 points, et je crois qu'ils sont dus à mes réponses sur deux ou trois sondages auxquels j'ai répondu. Donc si on pouvait m'expliquer un peu plus ce truc, vu que j'ai vu que les scores des plus actifs d'entre nous sont largement supérieurs à 500. Merci d'avance et bonne prog à tous.

JB
Afficher les 10 commentaires