ESPHome  2025.2.0
png_image.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "image_decoder.h"
4 #include "esphome/core/defines.h"
5 #ifdef USE_ONLINE_IMAGE_PNG_SUPPORT
6 #include <pngle.h>
7 
8 namespace esphome {
9 namespace online_image {
10 
14 class PngDecoder : public ImageDecoder {
15  public:
21  PngDecoder(OnlineImage *image) : ImageDecoder(image), pngle_(pngle_new()) {}
22  ~PngDecoder() override { pngle_destroy(this->pngle_); }
23 
24  int prepare(size_t download_size) override;
25  int HOT decode(uint8_t *buffer, size_t size) override;
26 
27  protected:
28  pngle_t *pngle_;
29 };
30 
31 } // namespace online_image
32 } // namespace esphome
33 
34 #endif // USE_ONLINE_IMAGE_PNG_SUPPORT
int prepare(size_t download_size) override
Definition: png_image.cpp:43
PngDecoder(OnlineImage *image)
Construct a new PNG Decoder object.
Definition: png_image.h:21
Download an image from a given URL, and decode it using the specified decoder.
Definition: online_image.h:39
Class to abstract decoding different image formats.
Definition: image_decoder.h:18
int HOT decode(uint8_t *buffer, size_t size) override
Definition: png_image.cpp:55
Image decoder specialization for PNG images.
Definition: png_image.h:14
Implementation of SPI Controller mode.
Definition: a01nyub.cpp:7