• Stars
    star
    223
  • Rank 178,458 (Top 4 %)
  • Language
    C
  • License
    Other
  • Created about 5 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Jpeg decoder library based on Tiny JPEG Decompressor

Arduino TJpg_Decoder library

This Arduino library supports the rendering of Jpeg files stored both on SD card and in arrays within program memory (FLASH) onto a TFT display. In addition images stored in the SPIFFS (ESP32, ESP8266) and LittleFS (ESP32, ESP8266, RP2040) Flash filing systems or alternatively "PROGMEM" arrays can be used.

The library has been tested on the Arduino Due, ESP32 and ESP8266 (e.g. NodeMCU 1.0), STM32 and RP2040 processors. Other processors should work too if they have sufficient memory. Use with the ESP32 requires Arduino board package 2.0.0 or later.

Jpeg files must be in 24bit format (8 bit not supported). Jpeg files in the "Progressive" format (where image data is compressed in multiple passes with progressively higher detail) are not supported either since this would require much more memory.

When storing the jpeg in a memory array bear in mind that some Arduino boards have a maximum 32767 byte limit for the maximum size of an array (32 KBytes minus 1 byte).

The decompression of Jpeg images needs more RAM than an UNO provides, thus this library is targetted at processors with more RAM. The decoder has a very small memory footprint, typically 3.5K Bytes of RAM (for workspace, Independent of Image Dimensions) and 3.5-8.5K Bytes of ROM for text and constants.

On a Mega the number of images stored in FLASH must be limited because it they are large enough to push the executable code start over the 64K 16 bit address limit then the Mega will fail to boot even though the sketch compiles and uploads correctly. This is a limitation imposed by the Arduino environment not this library! The Arduino Mega is not recommended as it does not reliably decode some jpeg images possibly due to a shortage of RAM. The Due will work fine with much bigger image sets in FLASH.

This library uses the TJpgDec decompressor engine detailed here: http://elm-chan.org/fsw/tjpgd/00index.html TJpgDec is a generic JPEG image decompressor module that highly optimized for small embedded systems.

More Repositories

1

TFT_eSPI

Arduino and PlatformIO IDE compatible TFT library optimised for the Raspberry Pi Pico (RP2040), STM32, ESP8266 and ESP32 that supports different driver chips
C
3,582
star
2

JPEGDecoder

A JPEG decoder library
C
221
star
3

TFT_HX8357

Arduino library for HX8357 TFT display
C
117
star
4

TFT_ILI9341

A fast Arduino IDE compatible graphics and fonts library including a driver for the ILI9341 based TFT displays.
C
109
star
5

TFT_eWidget

A TFT support GUI library providing button, graph, meter, and slider class functions.
C++
90
star
6

TFT_eFEX

A support library for TFT_eSPI that adds commonly used extra functions
C++
83
star
7

DarkSkyWeather

Arduino ESP32 and ESP8266 compatible library to read weather forecast from Dark Sky API
C++
80
star
8

TFT_ST7735

Arduino graphics library for ST7735 displays with propotional fonts
C
78
star
9

EPD_Libraries

A set of adapted Arduino libraries for Waveshare ePaper displays for ESP8266 and ESP32
C
49
star
10

U8g2_for_TFT_eSPI

C
40
star
11

OpenWeather

Arduino library to fetch weather information from OpenWeather
C++
38
star
12

JSON_Decoder

Streaming parser for decoding JSON streams on small devices
C++
32
star
13

TFT_Touch

Arduino touch screen library for XPT2046
C++
29
star
14

TFT_ILI9341_ESP

TFT ILI9341 library for ESP8266 and NodeMCU
C
29
star
15

TFT_HX8357_Due

Arduino Due TFT diaplay library for 16bit HX8357B/C and ILI9481 drivers
C
26
star
16

User_Manual_TFT_eSPI

User Manual for TFT_eSPI
25
star
17

Audio-Spectrum-FFT

Arduino sketch to sample PDM microphone and show frequencies using FFT
C++
20
star
18

TFT_ILI9163

Arduino library for ILI9163 based TFT displays
C
19
star
19

TFT_eFX

An example graphics extension library for TFT_eSPI
C++
18
star
20

ESP8266_uncannyEyes

A port of the Adafruit uncannyEyes to the NodeMCU and ILI9341 display
C
11
star
21

PowerPoint_to_sketch

Create an Arduino Sketch from a PowerPoint presentation
C++
10
star
22

TFT_SdFat

A tweaked version of SdFat to improve block read speed
C++
10
star
23

ADC_DMA_FFT

RP2040: sample ADC, run FFT, display on TFT
C++
10
star
24

SdFat

A version of SdFat that works with the JPEGDecoder library
C++
8
star
25

PNG_TEST_ONLY

Work in progress PNG decoder test sketches
C
8
star
26

TFT_S6D02A1

A fast Arduino TFT library for S6D02A1 based displays
C
7
star
27

Pico_Unicorn_GFX

Arduino library for Raspberry Pico with Pimoroni Unicorn 7x16 LED display
C++
7
star
28

ApixuWeather

Arduino ESP32 and ESP8266 compatible library to read weather forecast from Apixu API
C++
7
star
29

Touch_FT5x06

Multi-touch Arduino library for Focaltech FT5x06 capacitive touch controller
C++
5
star
30

GFX_Font_Converter

Windows executable to create GFX compatible fonts from ttf format font files
5
star
31

Raspberry-Pico_Micropython_Scripts

A collection of Micropython scripts for the Raspberry Pico
Python
4
star
32

TFT_eButton

TFT button library for TFT_eSPI
C++
4
star
33

Interrupt_driven_stepper

Arduino sketch to drive a stepper motor using Timer 1 interrupts
C++
3
star
34

MCUFRIEND_kbv-screenshot-server-and-client-sketch

Arduino MCUFRIEND_kbv TFT screenshot capture utility
C
2
star
35

Github-images

Images for use in ReadMe
1
star