Releases: randy408/libspng
v0.6.1
Bugfixes
- Fixed return value in
example.cfor valid images - Fixed MSVC build with miniz (Matthew Albrecht)
- Fixed argument types for
spng__zalloc() - Fixed some signedness warnings
Changes
Changes to the default behavior were made for libpng compatibility:
v0.6.0
This release is backward compatible.
New
-
Progressive image decode support, added new functions:
spng_decode_scanline()- Decodes a single scanlinespng_decode_row()- Decodes and deinterlaces a scanlinespng_get_row_info()- Get current scanline, row information
-
Added support for reading tEXt, iTXt, zTXt and iCCP color profile chunks, all standard chunks are supported in this release.
-
Added support for building with miniz,
spng.c/handminiz.c/hcan be used together without additional dependencies -
Added output format
SPNG_FMT_PNG, it represents the PNG's format in host-endian (thanks to Matthew Stadelman for initial implementation) -
Added output format
SPNG_FMT_RAW, it represents the PNG's format in big-endian (Matthew Stadelman) -
Added output format
SPNG_FMT_RGB8, conversion is supported from any color type and bit depth -
Added grayscale output formats
SPNG_FMT_G8,SPNG_FMT_GA8andSPNG_FMT_GA16, in this release conversion is only supported from a subset of grayscale and bit depth combinations, see documentation for details -
Added support for decoding from a
FILE*withspng_set_png_file() -
Added
SPNG_CTX_IGNORE_ADLER32context flag to ignore checksums in DEFLATE streams -
Added enums for filter types and interlace method
-
Added Meson option
use_minizand compiler optionSPNG_USE_MINIZfor building with miniz -
Added Meson option
benchmarksto run benchmarks provided by spngt, this requires Git LFS. -
Added Meson option
static_zlibto link the static version of zlib -
Multiversioned
defilter_up()function (enabled for GCC + glibc)
Changes
-
spng_decode_image()takes avoid*for the output buffer (wasunsigned char*) -
Reaching chunk size- or cache limits is now handled as an out-of-memory error
-
Out-of-range palette indices are handled as black opaque pixels when decoding,
this matches libpng's default behavior -
PNG image row length and output row length is now limited to 2^32-1 (
UINT32_MAX)
Bugfixes
- Fixed an IDAT streaming bug (Mathieu Mallet)
- Fixed CMake install issues
- Fixed bKGD handling and a testsuite issue on big-endian
- Fixed setting of PLTE presence bit (Matthew Stadelman)
- Added missing error condition for indexed images without a palette
- Fixed zlib constness warnings
- Fixed ordering checks for tRNS, hIST and bKGD chunks
Known issues
- Decoding to
SPNG_FMT_G8,SPNG_FMT_GA8andSPNG_FMT_GA16output formats is not supported for all PNG color type and bit depth combinations, see documentation for details - Gamma correction is not implemented for
SPNG_FMT_PNG,SPNG_FMT_G8,SPNG_FMT_GA8andSPNG_FMT_GA16 spng_crc_set_action()is partially implemented,SPNG_CRC_DISCARDhas no effect
v0.6.0-rc1
This is a release candidate, the API may change for the stable release!
Share your feedback on the API here or on Gitter!
UPDATE: This release is broken, use a0b7323 for testing progressive decode functionality with SPNG_FMT_PNG.
New features:
- Progressive image decode support, added new functions:
spng_decode_scanline()- decodes a single scanlinespng_decode_row()- decodes and deinterlaces a scanlinespng_get_row_info()- get scanline/row info including the filter type
- New output format
SPNG_FMT_RGB8, conversion is supported from any color type and bit depth - New output format
SPNG_FMT_PNG, this always matches the PNG's format in host-endian - Added support for decoding from a
FILE*viaspng_set_png_file() - Added
SPNG_CTX_IGNORE_ADLER32context flag to ignore checksums in DEFLATE streams - Enums for filter types, interlace method
- New Meson option
benchmarksto run benchmarks provided by spngt, this requires Git LFS. - New Meson option to link the static version of zlib:
static_zlib - Multiversioned
defilter_up()function (enabled for GCC + glibc)
Documentation:
- Added notes on build optimization level
- Added section on decoding arbitrary files
Bugfixes:
- Fixed an IDAT streaming bug (Mathieu Mallet)
- Fixed CMake install issues
- Fixed bKGD handling and a testsuite issue on big-endian (Robert-André Mauchin)
- Fixed setting of PLTE presence bit (Matthew Stadelman)
- Added missing error condition for indexed images without a palette
- Fixed zlib constness warnings
- Fixed ordering checks for tRNS, hIST and bKGD chunks