diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-09-12 19:13:57 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-09-12 19:13:57 +1000 |
commit | 4da398e42dbc9b18ec27ba27d0fa570adfc58922 (patch) | |
tree | 26b758398ed032eb951152b47ddcfc44206a7e9c /source/core | |
parent | 3c4a2eb71eea73c7e505ab631a1abc484f9e7b92 (diff) | |
parent | 7852ad9cf2efdf359132c986f46b0e34acbd28ba (diff) |
Merge branch 'main' into wip/net-n-btree
Diffstat (limited to 'source/core')
-rw-r--r-- | source/core/StarImage.cpp | 6 | ||||
-rw-r--r-- | source/core/StarImage.hpp | 1 |
2 files changed, 7 insertions, 0 deletions
diff --git a/source/core/StarImage.cpp b/source/core/StarImage.cpp index 82e3b05..52c2370 100644 --- a/source/core/StarImage.cpp +++ b/source/core/StarImage.cpp @@ -17,6 +17,12 @@ void readPngData(png_structp pngPtr, png_bytep data, png_size_t length) { ((IODevice*)png_get_io_ptr(pngPtr))->readFull((char*)data, length); }; +bool Image::isPng(IODevicePtr device) { + png_byte header[8]; + device->readAbsolute(0, (char*)header, sizeof(header)); + return !png_sig_cmp(header, 0, sizeof(header)); +} + Image Image::readPng(IODevicePtr device) { png_byte header[8]; device->readFull((char*)header, sizeof(header)); diff --git a/source/core/StarImage.hpp b/source/core/StarImage.hpp index 478d074..aac0105 100644 --- a/source/core/StarImage.hpp +++ b/source/core/StarImage.hpp @@ -27,6 +27,7 @@ STAR_CLASS(Image); class Image { public: static Image readPng(IODevicePtr device); + static bool isPng(IODevicePtr device); // Returns the size and pixel format that would be constructed from the given // png file, without actually loading it. static tuple<Vec2U, PixelFormat> readPngMetadata(IODevicePtr device); |