génerer une image

génerer une image - C++ - Programmation

Marsh Posté le 20-12-2002 à 21:38:45    

bonjour
 
j'aimerais créer une image (n'importe quel format, enfin un truc qui prenne pas max de place sur le DD qd meme) dans un programme en C. L'image que je veux créer sera définie pixel par pixel (pas besoin d'outils avancés).
 
Que faut il utiliser pour ca ?
 
j'ai entenu parler d'une library, mais je me rappelle plus le nom et j'ai pas trouvé sur google.
 
merci d'avance

Reply

Marsh Posté le 20-12-2002 à 21:38:45   

Reply

Marsh Posté le 20-12-2002 à 21:40:56    

GD ?


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 20-12-2002 à 21:42:55    

elle est installée de base cette library ou faut l'installer ?

Reply

Marsh Posté le 20-12-2002 à 21:46:31    

Library a écrit :

elle est installée de base cette library ou faut l'installer ?


 
Sous mon linux, il y a généralement que la partie exécutable, donc il faut rajouter les entêtes. Sur mangrake, ça doit être un truc du style urpmi gd-devel.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 20-12-2002 à 21:47:58    

VTK, tu peux faire ca et sauvegarder en JPEG, GIF, BMP, PS etc ...

Reply

Marsh Posté le 20-12-2002 à 21:48:18    

Reply

Marsh Posté le 20-12-2002 à 21:50:53    


 
y a l'air d'y avoir bcp de fonctions, je prefere autant un truc tout simple

Reply

Marsh Posté le 20-12-2002 à 21:51:14    

BotMan a écrit :

VTK, tu peux faire ca et sauvegarder en JPEG, GIF, BMP, PS etc ...


 
je regarde ca aussi

Reply

Marsh Posté le 20-12-2002 à 21:54:34    

ou est ce que je peux trouver des aides et docs sur VTK et GD ?
(j'ai un peu du mal a trouver qqch concernant le C sur google)


Message édité par Library le 20-12-2002 à 21:55:05
Reply

Marsh Posté le 20-12-2002 à 21:56:54    

Pour gd, le site est : http://www.boutell.com/gd/ mais il est dans le p4t4h


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 20-12-2002 à 21:56:54   

Reply

Marsh Posté le 20-12-2002 à 21:58:57    

kadreg a écrit :

Pour gd, le site est : http://www.boutell.com/gd/ mais il est dans le p4t4h


 
oui j'avais deja eu ce lien sur google :(
 
y a pas un autre site qui explique bien ?

Reply

Marsh Posté le 20-12-2002 à 22:06:52    

Library a écrit :

ou est ce que je peux trouver des aides et docs sur VTK et GD ?
(j'ai un peu du mal a trouver qqch concernant le C sur google)

www.kitware.com :sol:

Reply

Marsh Posté le 20-12-2002 à 22:11:41    

ca a l'air compliqué ton truc !

Reply

Marsh Posté le 20-12-2002 à 22:21:05    

Library a écrit :

ca a l'air compliqué ton truc !

cai une surcouche d'openGL, 800 classes, cpa rien :D
mais les possibilites sont infinies en traitement d'images ...

Reply

Marsh Posté le 20-12-2002 à 22:34:15    

ben t'as qu'a faire du BMP, vu la complexié du truc pas besoin de lib :whistle:


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 20-12-2002 à 22:35:05    

moi je veux juste un tout petit truc qui me permet de créer une petite image en niveaux de gris
 
ce serait écraser une mouche avec une masse en acier trempé :D

Reply

Marsh Posté le 20-12-2002 à 22:41:53    

Library a écrit :

moi je veux juste un tout petit truc qui me permet de créer une petite image en niveaux de gris

quel genre d'image ? si c'est un truc simple, tu créés un buffer de largeur*hauteur*profondeurcouleur que tu remplis à ta guise, puis tu colles devant un header bmp ([:google2]).
 
quant à l'acier trempé, tu aurais investi le temps que tu passes à te plaindre à choisir une lib et à écrire une image ... mais je m'égare :D

Reply

Marsh Posté le 20-12-2002 à 22:47:40    

youdontcare a écrit :

quel genre d'image ? si c'est un truc simple, tu créés un buffer de largeur*hauteur*profondeurcouleur que tu remplis à ta guise, puis tu colles devant un header bmp ([:google2]).
 
quant à l'acier trempé, tu aurais investi le temps que tu passes à te plaindre à choisir une lib et à écrire une image ... mais je m'égare :D


 
une image 200*200 pixel remplie pixel par pixel par un programme, chaque pixel ayant une couleur grise de valeur hexa définie par mon programme.
une image 200*200 en bmp c'est deja un peu lourd, mais le probleme c'est que je dois en avoir des centaines.
 
pour ta derniere remarque, j'aimerai bien trouver une adresse ou est expliqué comment se servir de GD dans un programme en C, mais j'arrive pas a trouver.

Reply

Marsh Posté le 20-12-2002 à 22:52:34    

Library a écrit :

j'aimerai bien trouver une adresse ou est expliqué comment se servir de GD dans un programme en C

http://216.239.37.100/search?q=cac [...] n&ie=UTF-8
 
"gd basics: using gd in your program"

Reply

Marsh Posté le 20-12-2002 à 22:55:06    

j'avais deja eu cette adresse, le probleme est que ca balance une proxy error quand je clique sur un lien

Reply

Marsh Posté le 20-12-2002 à 23:40:52    

T'as pas besoin de librairie tu fais un ppm et ca roule.
 
le format c'est  
 
P6
largeur hauteur // en ascii => pour toi 200 200
255
..... // la tu mets à la suite 3 char pour le rouge le vert et le bleu pour chaque pixel (en fait c'est un format ascii au debut, binaire apres mais tu peux écrire tes couleurs qui varient de 0 à 255 avec un char)
 
et c'est trop gros tu me diras bah apres tu fait un petit coup de convert sur chaque image et tu les transformes en ce que tu veux sans aucune necessité d'apprendre à te servir d'une lib.
 
 genre  
 
convert toto.ppm toto.png
 
et voila
 
 
PS : c'est pas la meilleure solution mais à mon avis elle est super rapide à mettre en oeuvre


Message édité par Mokett le 20-12-2002 à 23:46:09
Reply

Marsh Posté le 20-12-2002 à 23:49:32    

je comprend pas tout désolé
t'as une adresse qui explique un peu en donnant des lignes de code ?

Reply

Marsh Posté le 20-12-2002 à 23:56:01    

c'est pas compliqué du tout. Un fichier ppm ça commence par un entete tres simple (je met 200 200 parce que tu veux faire des images 200x200):
 
P6
200 200
255
 
c'est les 3 premières lignes.
ensuite à partir de la 4eme tu met à la suite tous tes pixels à la suite sans espace ni rien,typiquement avec un  
 
printf("%c%c%c",r,g,b); ou r,g,b sont les composntes rouges vert et bleues de ton pixel (si tu fais du gris alors ils ont la meme valeur) r, g et b sont compris entre 0 et 255.
 

Reply

Marsh Posté le 21-12-2002 à 00:06:16    

les 3 premieres lignes je les met direct comme ca ?
ca me parait bizzare comme lignes
 
sinon ca le met direct dans un bmp ca ?

Reply

Marsh Posté le 21-12-2002 à 00:21:01    

oui direct
 en fait le début est en ascii les trois premieres lignes.
et la suite est en binnaire : un triplet d'octets pour chaque pixel.
essaie un genre de truc comme ça.
 
fprintf(out,"P6\n200 200\n255\n" );
for(i=0;i<255;i++)
   for(j=0;j<255;j++)
       fprintf(out,"%c%c%c",(char) i,(char) i,(char) i);
 
ca devrait te faire un dégradé
 
edit : ça exactement ca marche:
 
 
#include<stdio.h>
 
int main()
{
  FILE *out =fopen("toto.ppm","w" );
  unsigned char i,j;
  fprintf(out,"P6\n200 200\n255\n" );
  for(i=0;i<255;i++)
    for(j=0;j<255;j++)
      fprintf(out,"%c%c%c",(char) i,(char) i,(char) i);
  fclose(out);
  return 0;
}
 


Message édité par Mokett le 21-12-2002 à 00:29:21
Reply

Marsh Posté le 21-12-2002 à 00:34:57    

merci bien ca marche
je crois que je vais utiliser cette méthode, c'est simple.

Reply

Marsh Posté le 21-12-2002 à 00:39:01    

note tout de meme que les images sont assez grosses.  
 
mais tu peux les convertir avec "convert", comme je te l'ai dit plus haut. (convert si tu connais pas, je crois que ça va avec le package d' "image magic" )

Reply

Marsh Posté le 21-12-2002 à 10:24:09    

voila c ca le nom qu'on m'avait dit pour la library :)
je vais essayer de trouver ca

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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