Comment générer des images de 256 px par 240 px de façon automatique

Comment générer des images de 256 px par 240 px de façon automatique - Divers - Programmation

Marsh Posté le 21-06-2015 à 17:27:46    

Salut tout le monde!
 
Ça fait très longtemps que je n'ai pas fait de programmation, mais pour un projet personnel, je n'ai pas le choix de m'y remettre.  Cependant, comme je ne suis pas tout à fait à jour dans mes connaissances, j'aurais besoins de votre aide pour savoir, d'une part, quel langage choisir et, d'autre par, quelle techniques et quels outils seraient les plus efficaces.
 
Alors voilà, commençons par le début
 
Je veux afficher une image de 256 pixels par 240 et changer la couleur de chaque pixel un à la fois et en continue en me basant sur une liste de 64 couleurs.
 
Par exemple :
 
Disons que j'ai, ici, une image de quatre pixel et une liste de deux couleurs :
 
Liste de couleur
 
- Noir (#000000)
 
- Bleu (#0000FF)
 
Le code afficherait alors successivement ces images :
 
(Pixels simulés par des X...)
 
XX
XX
 
XX
XX
 
XX
XX
 
XX
XX
 
XX
XX
 
XX
XX
 
XX
XX
 
XX
XX
 
XX
XX
 
XX
XX
 
 
XX
XX
 
XX
XX
 
XX
XX
 
XX
XX
 
XX
XX
 
XX
XX

Reply

Marsh Posté le 21-06-2015 à 17:27:46   

Reply

Marsh Posté le 21-06-2015 à 17:35:12    

Pas tout à fait compris le besoin à couvrir.
 
Il n'y a en tout cas pas de réponse définitive : ça dépend de ce que tu as à ta disposition, et *surtout* de ce que tu maitrises déjà. Tous les langages actuels ont les primitives simples pour la manipulation d'image et peuvent répondre à ton besoin, donc le choix est très très vaste.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 21-06-2015 à 17:39:39    

En gros, c'est un projet artistique.  Il n'y a pas d'autres de besoins que de générer des images en continue sur un écran.
 
Le langage que je connaissais (autours de 2003), c'était VB, mais je ne pense pas que ce soit vraiment d'actualité.  Je vais devoir apprendre un nouveau langage pour ça et j'aimerais savoir lequel choisir et par ou commencer pour arriver à faire ce projet le plus rapidement possible.

Reply

Marsh Posté le 21-06-2015 à 17:47:27    

Si tu ne veux pas trop t'éloigner du VB, tu peux faire ça en VB.Net. Mais faut aimer la syntaxe.  
Sinon en C# ou n'importe quoi d'autre.


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 21-06-2015 à 17:53:43    

Et tu aurais une technique à me proposer?  Juste histoire que je n'aie pas à apprendre la totalité d'un langage pour un seul projet!

Reply

Marsh Posté le 21-06-2015 à 18:00:41    

1) Prendre n'importe quel tuto d'initiation pour voir comment installer Visual Studio (version Express ou Community) et créer un projet winform.
 
2) Voir les classes comme Bitmap et Graphics pour les rudiments du dessin au runtime. ex : https://msdn.microsoft.com/en-us/li [...] 10%29.aspx
Ca pond un bitmap de 200 par 100, ça dessine des bandes de couleur dedans, et ça te l'affiche dans un control PictureBox.  
Toi t'auras juste à gérer en plus tes différents cas + l'écriture des fichiers (très simple).


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 21-06-2015 à 20:19:57    

Ça semble avoir du potentiel.  Cependant, la résolution de 256 par 240 est très importante pour moi.  Sinon, je ne veux pas enregistrer les images.  Simplement les afficher.  C'est possible?

Reply

Marsh Posté le 22-06-2015 à 09:39:59    

Je t'ai dit que dans l'exemple fourni on génère un Bitmap de 200 par 100, et dans le code tu as cette ligne : Bitmap flag = new Bitmap(200, 100);
 
A ton avis comment on change ça en 256 * 240 ? :D


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 22-06-2015 à 10:46:20    

Je propose AutoIt : c'est une syntaxe très proche du VB et dispose de primitives de haut niveau pour manipuler les images et couleurs de pixels.
 
La doc est assez complète aussi :)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-06-2015 à 05:17:23    

Merci!  Je vais jeter un oeil là dessus!
 
Sinon, question plus vaste.  Qu'importe quel langage je choisis, quelqu'un peut-il me suggérer une façon de procéder pour que je ne tappe pas manuellement 250 000 lignes de codes?

Reply

Marsh Posté le 24-06-2015 à 05:17:23   

Reply

Marsh Posté le 24-06-2015 à 09:08:08    

Payer quelqu'un dont c'est le métier pour le faire à ta place ? :sarcastic:


Message édité par TotalRecall le 24-06-2015 à 14:27:43

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 24-06-2015 à 11:42:08    

Ici, on ne fait pas le travail à la place des autres (et encore moins gratuitement). Tu peux poster une annonce dans la cat "emplois & études".
 
Avec AutoIt, je pense qu'en moins de 100 lignes, tu fais ton truc.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-06-2015 à 21:44:05    

rufo a écrit :

Ici, on ne fait pas le travail à la place des autres (et encore moins gratuitement). Tu peux poster une annonce dans la cat "emplois & études".
 
Avec AutoIt, je pense qu'en moins de 100 lignes, tu fais ton truc.


 
 
Euh... Pour info, je ne demandais pas à quelqu'un de le faire et encore moins gratuitement.  Je voulais juste une piste de réflexion.  Je ne vois pas en quoi écrire une phrase serait travailler gratuitement.  Je ne sais pas comment faire un truc, je demande si quelqu'un connait une solution simple, voilà tout.  Si pour toi, c'est ça de travailler gratuitement, tu ne dois pas répondre à beaucoup de question en général.  :-S
 
Sinon, pour TotalRecall : je ne veux pas payer quelqu'un d'autre pour le faire, je veux le faire moi-même.  C'est assez important pour le concept de l'oeuvre que je fasse tout moi-même.

Reply

Marsh Posté le 25-06-2015 à 09:16:11    

Notre réaction s'explique par le fait qu'avec les indications que je t'ai donné tu as déjà tous les éléments, et un exemple de mise en oeuvre (pour un besoin différent), à condition d'expérimenter un peu maintenant par toi même. Quitte à revenir avec des questions.
Rufo t'a aussi proposé une autre solution, via un outil de scripting que je ne connais pas.

 

Tu as donc déjà au moins deux pistes différentes, pourtant tu ne fais aucun retour dessus, tu ne poses aucune question sur leur mise en oeuvre, tu as juste eu l'air d'attendre une solution "plus finie". Bien sûr tu pourrais être perdu à un moment donné ou ne pas aimer nos propositions, mais dans ce cas précise les raisons.
Mais tel que tu as formulé ta question et à l'évidence sans avoir rien tenté de plus, ça ne ressemble plus à de l'entraide ou du conseil.


Message édité par TotalRecall le 25-06-2015 à 09:18:52

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 25-06-2015 à 19:18:54    

Sauf erreur de ma part, on m'a suggéré de langage de programmation.  Cepnendant, le peu d'expérience que j'ai m'a appris que les langages se ressemblent tous un peu.  Ma seconde question se référait à la méthodologie.  par exemple ami m'avait déjà suggéré d'utiliser deux boucles, mais comme je ne suis pas assez qualé en programmation, je ne sais pas tout à fait ce qu'il veut dire : je sais ce qu'est une boucle et comment ça fonctionne, mais comment deux boucles peuvent affexter une image de 256 par 240...  Ironiquement, je ne peux plus demander à cet ami parce qu'il est en vacance quelque part en Afrique en ce moment...  :-S

Reply

Marsh Posté le 26-06-2015 à 11:09:36    

Une boucle for() pour travailler sur la première dimension de l'image (la largeur, par ex) et une boucle à l'intérieure de la première pour travailler sur la 2ème dimension de l'image (la hauteur, du coup).
En pseudo-code :  
for($i = 0; $i < $LargeurImage; $i++)
{
    for($j = 0; $j < $HauteurImage; $j++)
    {
         $CouleurPixel = getColor($fImage, $i, $j);
    }
}
 
Bien sûr, faut identifier les fonctions permettant d'ouvrir le fichier image et récupérer sa largeur et hauteur, puis la couleur d'un pixel aux coordonnées i/j. Un petit tour sur openClassroom pourra éventuellement t'aider en fonction du langage retenu.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 27-06-2015 à 00:50:29    

D'accord!  Ça pourrait marcher!  Merci!  Je vais tester cette approche et voir ce que ça donne!  Merci!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed