#include "png.h" #include #define STB_IMAGE_IMPLEMENTATION #include "../external/stb_image/stb_image.h" bool PngLoad(const char* filename, PngImage& image) { int x, y, c; uint8_t* data = stbi_load(filename, &x, &y, &c, 4); if (data) { int s = x*y; image.m_data = new uint32_t[s]; memcpy(image.m_data, data, s*sizeof(char)*4); image.m_width = (unsigned short)x; image.m_height = (unsigned short)y; stbi_image_free(data); return true; } else { return false; } } void PngFree(PngImage& image) { delete[] image.m_data; } bool HdrLoad(const char* filename, HdrImage& image) { int x, y, c; float* data = stbi_loadf(filename, &x, &y, &c, 4); if (data) { int s = x*y; image.m_data = new float[s*4]; memcpy(image.m_data, data, s*sizeof(float)*4); image.m_width = (unsigned short)x; image.m_height = (unsigned short)y; stbi_image_free(data); return true; } else { return false; } } void HdrFree(HdrImage& image) { delete[] image.m_data; }