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

nonosannnkawtg 2 Messages postés jeudi 4 août 2016Date d'inscription 10 août 2016 Dernière intervention - 4 août 2016 à 18:06 - Dernière réponse : nonosannnkawtg 2 Messages postés jeudi 4 août 2016Date d'inscription 10 août 2016 Dernière intervention
- 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.
Afficher la suite 

3 réponses

Répondre au sujet
cptpingu 3766 Messages postés dimanche 12 décembre 2004Date d'inscriptionModérateurStatut 1 décembre 2017 Dernière intervention - 5 août 2016 à 10:49
0
Utile
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).
Commenter la réponse de cptpingu
nagaD.scar 4147 Messages postés samedi 8 septembre 2007Date d'inscription 6 décembre 2017 Dernière intervention - 5 août 2016 à 10:52
0
Utile
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
Commenter la réponse de nagaD.scar
nonosannnkawtg 2 Messages postés jeudi 4 août 2016Date d'inscription 10 août 2016 Dernière intervention - 10 août 2016 à 10:21
0
Utile
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).
Commenter la réponse de nonosannnkawtg

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.