#include #include #include #include #include "tinyexr.h" static void GenerateWhite1(size_t width, size_t height) { std::vector rgb; rgb.resize(width * height * 3); for (size_t i = 0; i < width * height * 3; i++) { rgb[i] = 1.0f; } const char *err = nullptr; int ret = SaveEXR(rgb.data(), int(width), int(height), /* channels */3, /* fp16? */0, "white1.exr", &err); if (!ret) { if (err) { std::cerr << err << std::endl; FreeEXRErrorMessage(err); } std::cerr << "failed to write white.exr" << std::endl; } } static void GenerateWhite10(size_t width, size_t height) { std::vector rgb; rgb.resize(width * height * 3); for (size_t i = 0; i < width * height * 3; i++) { rgb[i] = 10.0f; } const char *err = nullptr; int ret = SaveEXR(rgb.data(), int(width), int(height), /* channels */3, /* fp16? */0, "white10.exr", &err); if (!ret) { if (err) { std::cerr << err << std::endl; FreeEXRErrorMessage(err); } std::cerr << "failed to write white10.exr" << std::endl; } } static void GenerateWhite100(size_t width, size_t height) { std::vector rgb; rgb.resize(width * height * 3); for (size_t i = 0; i < width * height * 3; i++) { rgb[i] = 100.0f; } const char *err = nullptr; int ret = SaveEXR(rgb.data(), int(width), int(height), /* channels */3, /* fp16? */0, "white100.exr", &err); if (!ret) { if (err) { std::cerr << err << std::endl; FreeEXRErrorMessage(err); } std::cerr << "failed to write white100.exr" << std::endl; } } int main(int argc, char** argv) { int width = 512; int height = 512; if (argc > 2) { width = std::min(1, atoi(argv[2])); } if (argc > 3) { height = std::min(1, atoi(argv[3])); } GenerateWhite1(width, height); GenerateWhite10(width, height); GenerateWhite100(width, height); return EXIT_SUCCESS; }