IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

générer une image à partir des valeurs d'un tableau 2d


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 17
    Points : 19
    Points
    19
    Par défaut générer une image à partir des valeurs d'un tableau 2d
    bonjours,
    Alors voilà, je programme en c pour mes études et j'ai eu un problème
    j'Upload des fichiers dans le programme que j'ai fait sous forme de tableaux 2D avec des valeur (des mesures) puis je fait des calcules en utilisant les données dans ces tableaux. en fin j’obtiens un tableaux final que je nomme output de taille [n][m]. le problème c'est que je veut à partir des valeurs dans ce tableau générer une image, donc pixel par pixel je peut la crée mais je ne sais pas comment générer des image ni comment accéder aux pixel en C.
    exemple:
    output [20][20]


    et l'image généré sera alors



    l'exemple montré est générer avec php mais pour des fichier beaucoup plus volumineux ça prend beaucoup de temps et donc l'utilisation de C diminue en temps de calcule et tous me reste seule COMMENT G2N2RER UNE IMAGE EN PHP ET COMMENT ACC2DER AUX PIXEL

  2. #2
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 947
    Points : 1 351
    Points
    1 351
    Par défaut
    Salut,

    Il n'y a pas à ma connaissance de format bitmap intégral, comme tu sembles le croire. Même un fichier gif/png intègre une palette de couleurs et une compression sans perte. Je serais curieux de voir le code php qui a généré ça. A moins d'avoir utilisé une bibliothèque spécialisée qui prend le bitmap en paramètre...

    A+

    Pfeuh

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    pour le code php j'ai utilisé GD pour moi c'est le normale à utiliser dans ce cas,
    voilà la partie du code qui génère l'image:
    $val=array();
    for($i=0;$i<$longnbr;$i++){
    for($j=0;$j<$latnbr;$j++){
    $val[$n]=$longlat[$i][$j];
    $n++;
    }
    }

    $interval=max($val)-min($val);

    $im = imagecreatetruecolor($longnbr, $latnbr);
    $b0=imagecolorallocate($im, 255, 255, 255);//blanc
    $b1=imagecolorallocate($im, 225, 225, 255);
    $b2=imagecolorallocate($im, 200, 200, 255);
    $b3=imagecolorallocate($im, 175, 175, 255);
    $b4=imagecolorallocate($im, 150, 150, 255);
    $b5=imagecolorallocate($im, 125, 125, 255);
    $b6=imagecolorallocate($im, 100, 100, 255);
    $b7=imagecolorallocate($im, 75, 75, 255);
    $b8=imagecolorallocate($im, 50, 50, 255);
    $b9=imagecolorallocate($im, 25, 25, 255);
    $b10=imagecolorallocate($im, 0, 0, 255);//bleu

    $n=0;
    for($i=0;$i<$longnbr;$i++){
    for($j=0;$j<$latnbr;$j++){
    if($val[$n]>(min($val)+(($interval/11)*1))){imagefilledrectangle($im, $i, $j, $i, $j, $b10);}
    if($val[$n]>(min($val)+(($interval/11)*2))){imagefilledrectangle($im, $i, $j, $i, $j, $b9);}
    if($val[$n]>(min($val)+(($interval/11)*3))){imagefilledrectangle($im, $i, $j, $i, $j, $b8);}
    if($val[$n]>(min($val)+(($interval/11)*4))){imagefilledrectangle($im, $i, $j, $i, $j, $b7);}
    if($val[$n]>(min($val)+(($interval/11)*5))){imagefilledrectangle($im, $i, $j, $i, $j, $b6);}
    if($val[$n]>(min($val)+(($interval/11)*6))){imagefilledrectangle($im, $i, $j, $i, $j, $b5);}
    if($val[$n]>(min($val)+(($interval/11)*7))){imagefilledrectangle($im, $i, $j, $i, $j, $b4);}
    if($val[$n]>(min($val)+(($interval/11)*8))){imagefilledrectangle($im, $i, $j, $i, $j, $b3);}
    if($val[$n]>(min($val)+(($interval/11)*9))){imagefilledrectangle($im, $i, $j, $i, $j, $b2);}
    if($val[$n]>(min($val)+(($interval/11)*10))){imagefilledrectangle($im, $i, $j, $i, $j, $b1);}
    if($val[$n]>(min($val)+(($interval/11)*11))){imagefilledrectangle($im, $i, $j, $i, $j, $b0);}
    $n++;
    }
    }

    //plot
    header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);
    ici $val c'est le tableau output, longnbr et latnbr sont les dimension du tableau

    je suis sur qu'en c ça ne sera pas la même chose on doit écrire les headers de l'image la palette ...etc
    j'ai trouver un site très bien pour expliquer ces headers http://www.fortunecity.com/skyscrape.../bmpffrmt.html
    mais là je n'est trouver aucune explication sur comment faire ça en C.

    si vous saver le faire vous pouvez me passer un lien pour un cours, un tuto, un code source n'importe quoi peut m'aider

  4. #4
    Membre expérimenté
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    947
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 947
    Points : 1 351
    Points
    1 351
    Par défaut
    Ok, donc tu as utilisé la librairie GD. Il me semble que l'équivalent existe dans la librairie SLD_Image, qui n'est pas implémentée sur les petits PICS. Regarde peut-être au niveau de l'embarqué, Microchip propose des interfaces graphiques complètes (notamment pour les ecrans tactiles) pour certains de leur kits de développements. J'ai mis le nez dedans c'est bien écrit et réutilisable. Tu y trouveras peut-être ton bonheur.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    Merci
    je vais voire cette bibliothèque, j'espère qu'elle marchera bien.

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 883
    Points : 219 328
    Points
    219 328
    Billets dans le blog
    123
    Par défaut
    Bonjour,

    Je pense que le mieux est juste d'écrire en .BMP simplement. Le format est un de plus simples (sinon ... y avait le .pgm je crois qui était super amusant)
    Et pas la peine de s'encombrer avec des trucs supplémentaire style SDL
    (et puis pour du BMP, y a même pas besoin de SDL_Image en fait)
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    tu peux aussi utuliser la bibliothèque libtiff et ses programmes associés (le code source est fourni) http://www.libtiff.org/

    ou bien en allant sur le site de l'auteur original de la bibliothèque gd : http://www.boutell.com/gd/
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2009
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    je pense que je vais essayé d'écrire directement en .BMP
    je pense c'est la solution la plus simple pour mon problème
    Merci à vous tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment générer une image à partir d'un formule Latex
    Par snopims dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 0
    Dernier message: 11/06/2008, 14h01
  2. Réponses: 1
    Dernier message: 23/01/2006, 18h53
  3. Réponses: 3
    Dernier message: 02/12/2005, 13h23
  4. réafficher une image à partir des données recupérées
    Par vbcasimir dans le forum Langage
    Réponses: 3
    Dernier message: 04/10/2005, 10h50
  5. [ImageMagick] Générer une image à partir de plusieurs images ?
    Par fichtre! dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 16/02/2005, 15h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo