génerer une image - C++ - Programmation
Marsh Posté le 20-12-2002 à 21:40:56
GD ?
Marsh Posté le 20-12-2002 à 21:42:55
elle est installée de base cette library ou faut l'installer ?
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.
Marsh Posté le 20-12-2002 à 21:47:58
VTK, tu peux faire ca et sauvegarder en JPEG, GIF, BMP, PS etc ...
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
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
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)
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
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 ?
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 ? |
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
mais les possibilites sont infinies en traitement d'images ...
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é
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 ().
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
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 (). |
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.
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"
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
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
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 ?
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.
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 ?
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;
}
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.
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" )
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
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