|
|
- #define TINYEXR_IMPLEMENTATION
- #include "tinyexr.h"
-
- #include "exr-io.h"
-
- #include <cstdio>
- #include <iostream>
-
- namespace exrio {
-
- bool GetEXRLayers(const char *filename)
- {
- const char** layer_names = nullptr;
- int num_layers = 0;
- const char *err = nullptr;
- int ret = EXRLayers(filename, &layer_names, &num_layers, &err);
-
- if (err) {
- fprintf(stderr, "EXR error = %s\n", err);
- }
-
- if (ret != 0) {
- fprintf(stderr, "Load EXR err: %s\n", err);
- return false;
- }
- if (num_layers > 0)
- {
- fprintf(stdout, "EXR Contains %i Layers\n", num_layers);
- for (size_t i = 0; i < num_layers; ++i) {
- fprintf(stdout, "Layer %i : %s\n", i + 1, layer_names[i]);
- }
- }
- free(layer_names);
- return true;
- }
-
- bool LoadEXRRGBA(float** rgba, int *w, int *h, const char* filename, const char* layername)
- {
- int width, height;
- float* image;
- const char *err = nullptr;
- int ret = LoadEXRWithLayer(&image, &width, &height, filename, layername, &err);
-
- if (err) {
- fprintf(stderr, "EXR error = %s\n", err);
- }
-
- if (ret != 0) {
- fprintf(stderr, "Load EXR err: %s\n", err);
- return false;
- }
-
- (*rgba) = image;
- (*w) = width;
- (*h) = height;
-
- return true;
- }
-
- }
|