Example #1
0
 template<class T> void ExrFile<T>::
 write(const std::string& filename, RawArray<const Vector<T,3>,2> image)
 {
   // convert to array of EXRPixels
   Imf::Rgba *pixels = new Imf::Rgba[image.total_size()];
   
   for (int i = 0; i < image.m; ++i) {
     for (int j = 0; j < image.n; ++j) {
       pixels[j*image.m+i] = to_rgba(image(i,j));
     }
   }
   
   Imf::RgbaOutputFile file(filename.c_str(), image.m, image.n, Imf::WRITE_RGBA);
   file.setFrameBuffer(pixels, 1, image.m);
   file.writePixels(image.n);
   
   delete[] pixels;
 }