1
0
Fork 0

source/Graphics/ImageLoader.cpp: use the new File API

This commit is contained in:
Henrik Hautakoski 2020-01-19 21:14:44 +01:00
parent dc04a12922
commit 1a43bcd77a
No known key found for this signature in database
GPG key ID: 96765B12FEAC4745

View file

@ -1,4 +1,5 @@
#include <Spectre/System/File.h>
#include <Spectre/System/Path.h> #include <Spectre/System/Path.h>
#include <Spectre/System/Log.h> #include <Spectre/System/Log.h>
#include <Spectre/Graphics/Image.h> #include <Spectre/Graphics/Image.h>
@ -18,22 +19,17 @@
#include <cstring> #include <cstring>
#include <cstdlib> #include <cstdlib>
#include <cstdio>
#include <vector> #include <vector>
namespace sp { namespace sp {
bool ImageLoader::loadFromFile(const char *filename, Image& img) bool ImageLoader::loadFromFile(const char *filename, Image& img)
{ {
FILE *fd = fopen(filename, "rb"); File file(filename);
if (fd) { if (file.isOpen()) {
std::vector<unsigned char> buf; std::vector<unsigned char> buf;
fseek(fd, 0, SEEK_END); file.read(buf);
buf.resize(ftell(fd));
rewind(fd);
fread(&buf[0], 1, buf.size(), fd);
fclose(fd);
// loaded into memory. now decode. // loaded into memory. now decode.
if (decode((const char*)&buf[0], buf.size(), img) == false) { if (decode((const char*)&buf[0], buf.size(), img) == false) {
@ -45,7 +41,7 @@ bool ImageLoader::loadFromFile(const char *filename, Image& img)
} }
Log::warn("ImageLoader: could not open file '%s'. Reason: %s", Log::warn("ImageLoader: could not open file '%s'. Reason: %s",
filename, strerror(errno)); filename, file.getErrorMessage().c_str());
return false; return false;
} }
@ -78,10 +74,9 @@ bool ImageLoader::saveToFile(const Image& img, const char *filename)
if (encoded_data.size() > 0) { if (encoded_data.size() > 0) {
FILE *fd = fopen(filename, "wb"); File file(filename, File::Access::WRITE);
if (fd) { if (file.isOpen()) {
fwrite(&encoded_data[0], 1, encoded_data.size(), fd); file.write(encoded_data);
fclose(fd);
} }
return true; return true;
} }