diff options
author | floydinator-git <78954063+floydinator-git@users.noreply.github.com> | 2024-09-10 23:04:09 -0400 |
---|---|---|
committer | floydinator-git <78954063+floydinator-git@users.noreply.github.com> | 2024-09-10 23:04:09 -0400 |
commit | 1f5e8a462908a7c6e7eac5b53c70749837d29c64 (patch) | |
tree | 8b16b62548e221d5a0357680ea2d3d237fed17ad /source/core/StarImage.cpp | |
parent | 8457c2e9542230ce6c71d7fc696d4f79e4a5456c (diff) |
Fix ImageMetadataDatabase::calculateImageSize calling Image::readPngMetadata on non-PNG images.
Diffstat (limited to 'source/core/StarImage.cpp')
-rw-r--r-- | source/core/StarImage.cpp | 6 |
1 files changed, 6 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)); |