diff options
Diffstat (limited to 'src/libjin/Graphics/je_image.cpp')
-rw-r--r-- | src/libjin/Graphics/je_image.cpp | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/libjin/Graphics/je_image.cpp b/src/libjin/Graphics/je_image.cpp new file mode 100644 index 0000000..cca78a3 --- /dev/null +++ b/src/libjin/Graphics/je_image.cpp @@ -0,0 +1,46 @@ +#include "../3rdparty/stb/stb_image.h" +#include "../filesystem/je_filesystem.h" + +#include "je_image.h" + +namespace jin +{ + namespace graphics + { + + using namespace filesystem; + + /*static*/ Image* Image::createImage(const void* imgData, size_t size) + { + if (imgData == nullptr) + return nullptr; + int w, h; + void* data = stbi_load_from_memory((unsigned char *)imgData, size, &w, &h, NULL, STBI_rgb_alpha); + if (data == nullptr) + return nullptr; + Image* image = new Image(); + image->pixels = (Color*)data; + image->width = w; + image->height = h; + return image; + } + + Image* Image::createImage(const char* path) + { + Filesystem* fs = Filesystem::get(); + Buffer buffer; + fs->read(path, &buffer); + return createImage(buffer.data, buffer.size); + } + + Image::Image() + : Bitmap() + { + } + + Image::~Image() + { + } + + } // namespace graphics +} // namespace jin |