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 !