ESPHome 2026.9.0-dev
Loading...
Searching...
No Matches
png_decoder.h
Go to the documentation of this file.
1#pragma once
2
5#include "image_decoder.h"
6#include "runtime_image.h"
7#ifdef USE_RUNTIME_IMAGE_PNG
8#include <pngle.h>
9
10namespace esphome::runtime_image {
11
15class PngDecoder : public ImageDecoder {
16 public:
23 ~PngDecoder() override;
24
25 void reset() override {
27 if (this->pngle_) {
28 pngle_reset(this->pngle_);
29 }
30 this->pixels_decoded_ = 0;
31 }
32
33 int prepare(size_t expected_size) override;
34 int HOT decode(uint8_t *buffer, size_t size) override;
35
36 void increment_pixels_decoded(uint32_t count) { this->pixels_decoded_ += count; }
38
39 protected:
40 pngle_t *pngle_{nullptr};
42};
43
44} // namespace esphome::runtime_image
45
46#endif // USE_RUNTIME_IMAGE_PNG
Class to abstract decoding different image formats.
virtual void reset()
Reset the decoder state, ending any decoding session.
Image decoder specialization for PNG images.
Definition png_decoder.h:15
int HOT decode(uint8_t *buffer, size_t size) override
PngDecoder(RuntimeImage *image)
Construct a new PNG Decoder object.
void increment_pixels_decoded(uint32_t count)
Definition png_decoder.h:36
int prepare(size_t expected_size) override
A dynamic image that can be loaded and decoded at runtime.
uint16_t size
Definition helpers.cpp:25
static void uint32_t