Récupérer le code RGB de chaque pixel d'un bmp dans un txt

Résolu
nonosannnkawtg Messages postés 2 Date d'inscription jeudi 4 août 2016 Statut Membre Dernière intervention 10 août 2016 - 4 août 2016 à 18:06
nonosannnkawtg Messages postés 2 Date d'inscription jeudi 4 août 2016 Statut Membre Dernière intervention 10 août 2016 - 10 août 2016 à 10:21
bonjour à tous et à toutes,
Avant toutes choses, je précise que je suis un novice/autodidacte en C++ et programmation. Je m'y suis mis afin de lancer un projet personnel, fabriquer un pixel stick afin de faire du light painting. J'ai réussi à faire une petite moulinette grace à excel et à charger des tableaux dans mon arduino afin de faire clignoter mon bandeau de 144 LED et de pouvoir afficher des figures simples, le hic, c'est que je dois "dessiner" les formes à la main dans excel (en coloriant les cases) pour ensuite les charger dans le tableau dont se sert l'arduino.

Maintenant, ce que je cherche une méthode moins rébarbative, et surtout permettant de créer des images plus recherchées que de simples "pixel art".
Malgré toutes mes recherches, je ne trouve pas comment faire, j'ai lu qu'on parlait de SDL le plus souvent, mais je n'arrive pas à m'en servir :'(, il doit me manquer des bases.

Donc idéalement, j'aimerait charger une image BMP, lire le code RGB de chaque pixel et le sortir dans un fichier texte, soit unique, soit un fichier pour chaque couleur.

Pourriez-vous me donner au moins des pistes afin que je puisse coder en utilisant une fonction simple genre :
couleur_pixel ("img.bmp) qui créerait le ou les fichiers texte.

Je vous remercie d'avance :-D.
A voir également:

3 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
5 août 2016 à 10:49
Bonjour.

Voici quelques pistes:

Je précise que je n'ai rien testé, et ça fait longtemps que je n'ai pas fait de SDL (je ne garantie donc pas que ça fonctionnera du premier coup). Néanmoins, toutes mes réponses ont été trouvées en tapant des mots-clé dans un moteur de recherche... Je t'invite, la prochaine fois, à effectuer ces recherches toi même, avant de poster (ici on répond plus à des problèmes de code que de recherche).
0
nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 17
5 août 2016 à 10:52
Salut,

Bon juste pour faire mon relou, l arduino c'est pas vraiment du c/c++ mais passons.

Pour ce qui est de ton problème la toute première chose sera d'ouvrir ton fichier en mode lecture (fopen option "r") et effectuer la lecture bit par bit.

ensuite c'est du traitement de flux. Une petite explication sur le format :
http://www.commentcamarche.net/contents/1200-bmp-format-bmp


Donc en fonction de la définition il faudra aussi que tu regroupe des pixels pour qu au final tu puisse avoir la sortie adéquate. C'est à dire:
Tu as un bandeau de 12*12 et tu as une image de 48*48 -> tu regroupera les carré de 4 pixels de ton image de base en 1 seul (donc couleur moyenne par exemple). Je ne connais pas les led que tu as ( on/off seulement ? ) donc je peux pas trop en dire plus à ce niveau.

naga
0
nonosannnkawtg Messages postés 2 Date d'inscription jeudi 4 août 2016 Statut Membre Dernière intervention 10 août 2016
10 août 2016 à 10:21
Bonjour,

Tout d'abord, merci de ces réponses.

Pour info, j'ai longuement cherché sur internet pour arriver sensiblement aux même résultats. Cependant, mon niveau de codage ne me.permet pas de comprendre certaines réponses.
En SDL en particulier, j'ai bien vu des explications sur getpixelcolor, mais sans les bases ça ne me sert à rien. J'ai donc commencé un petit cours sur l'utilisation de sdl, je complèterai par les liens et infos que vous m'avez donné.

Merci encore pour ces indications.

PS : (le code que je cherche à faire ne sera pas injecté dans l'arduino, il servira à élaborer le tableau qui servira de base au light painting).
0
Rejoignez-nous