Releases: bitbank2/JPEGDEC
Fixed full framebuffer pointer overwrite
This release fixes a regression from adding the automatic DMA ping-pong buffer handling. The use of a full sized framebuffer instead of a JPEGDRAW callback got broken by the DMA change. This fix restores the ability to pass a full sized framebuffer and not a JPEGDRAW callback.
Fixed pixel pointer in JPEGDRAW callback
This release fixes the pointer passed to the JPEGDRAW callback to point to the dither buffer when decoding with dithering.
Fixed centering offsets
This release fixes a bug where providing centering offsets for the decode() method would cause unwanted decoding problems.
Added LittleFS support to the JPEGDisplay helper
This release adds support to the JPEGDisplay helper class to allow easy displaying of images stored on LittleFS. New examples soon...
Added JPEG Display Helper class
This release adds a new feature to make it even easier to use the library - the JPEGDisplay helper class. This is a separate C++ class which works with my bb_spi_lcd display library. With this addition, displaying images on displays requires nearly zero user-written code.
fixes and examples
This release contains a lot of fixes for security and memory robustness, a new test suite including fuzz tests and several new examples.
Odd-width fixes
This release fixes some pixel overwrite bugs when decoding images which aren't a multiple of the MCU size in width. It also fixes a problem specific to the ESP32-S3 - that the bytes per row needs to be a multiple of 16.
fixed a regression of the latest code
fixed an accidental regression of the last release
Added initial support for Progressive decoding
This release adds initial support for progressive decoding. Normally progressive decoding requires a lot of RAM because the entire image must be kept in memory as each successive "scan" is decoded with more detailed DCT blocks. For this release, I added support for decoding the first scan which normally just contains the DC values. This allows me to offer a thumbnail sized (1/8th) decode without requiring more RAM. I can add full progressive support later, but it seems like a very rare MCU that would have the need (and the large spare RAM) to use it.
Shoutout to Tobias Butler (Tuneshine) for sponsoring this feature.
Added crop area feature
This release adds the ability to specify a cropped area for decoding. This can save significant time and memory if your program only needs to decode a sub-region of an image. The crop area must be along MCU boundaries and if set incorrectly, the area will be corrected. Two new methods were added:
setCropArea()
getCropArea()
These are documented in the Wiki