Bonjour et Joyeux Noël
J'ai une petite question, je n'arrive pas à créer une image à partir d'une liste de Pixel (donc de vecteur de taille 3) en C++.
Existe-il une libraire simple pour faire ce genre de chose rapidement ? j'ai entendu parler de Cimg mais j'ai un peu de mal à voir comment l'appliquer dans le cas présent.
J'ai également essayé de programmer moi même une fonction pour enregistrer cette image en .ppm mais j'ai une segfault que je n'arrive pas à lever
Code c++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 template<typename T> void savePPM(glm::tvec3<double>* image, renderContext* rc, const char *filename) { std::ofstream ofs; ofs.open(filename); int H = rc->getHeight(); int W = rc->getWidth(); ofs << "P6\n" << rc->getWidth() << " " << rc->getHeight() << "\n255\n"; for (int j = 0; j < H; j++) { for (int i = 0; i < W; i++) { glm::tvec3<double> pixelChar; pixelChar[0] = (*image)[0] * 255; pixelChar[1] = (*image)[1] * 255; pixelChar[2] = (*image)[2] * 255; if(j != H-1 || i != W-1){ image++; // segfault } ofs.write((char*)&pixelChar[0], 3); } } ofs.close(); }
Merci d'avance pour ceux qui prendront le temps de m'aider.
Si vous désirez d'autres informations sur le code n'hésitez pas !
Partager