![]() |
libfacade 1.1
A library for manipulating PNG images with payloads.
|
The base scanline class containing a row of facade::png::PixelSpan of the given pixel type. More...
#include <png.hpp>
Public Types | |
| using | Span = PixelSpan< PixelType > |
| The pixel span this scanline holds. | |
Public Member Functions | |
| ScanlineBase () | |
| ScanlineBase (std::uint8_t filter_type, std::size_t width) | |
| ScanlineBase (std::uint8_t filter_type, std::vector< Span > pixel_data) | |
| ScanlineBase (const ScanlineBase &other) | |
| Pixel | operator[] (std::size_t index) const |
| Syntactic sugar for getting a facade::png::Pixel variant. | |
| std::uint8_t | filter_type () const |
| Get the filter type of this scanline. | |
| void | set_filter_type (std::uint8_t filter_type) |
| Set the filter type of this scanline. | |
| __attribute__((used)) const std std::size_t | pixel_span () const |
| Return a const reference to the underlying pixel data array. | |
| std::size_t | pixel_width () const |
| Return the size, in samples, of the given scanline. | |
| Span & | get_span (std::size_t index) |
| Get the facade::png::PixelSpan reference at the given index. | |
| const Span & | get_span (std::size_t index) const |
| Get the const facade::png::PixelSpan reference at the given index. | |
| void | set_span (const Span &span, std::size_t index) |
| Set the facade::png::PixelSpan object at the given index. | |
| Pixel | get_pixel (std::size_t index) const |
| Get the pixel at the given index. | |
| void | set_pixel (const Pixel &pixel, std::size_t index) |
| Set the pixel at the given index. | |
| std::vector< std::uint8_t > | to_raw () const |
| Convert this scanline to raw byte form. | |
| ScanlineBase | reconstruct (std::optional< ScanlineBase > previous) const |
| Reconstruct the scanline based on its filter value. | |
| ScanlineBase | filter (std::optional< ScanlineBase > previous) const |
| Calculate all filters and determine the best compressed filter among them. | |
| ScanlineBase | filter (FilterType filter_type, std::optional< ScanlineBase > previous) const |
| Calculate the given filter type on this scanline. | |
Static Public Member Functions | |
| static ScanlineBase | read_line (const std::vector< std::uint8_t > &raw_data, std::size_t offset, std::size_t width) |
| Create a scanline object from raw data at the given data offset. | |
| static std::vector< ScanlineBase > | from_raw (const Header &header, const std::vector< std::uint8_t > &raw_data) |
| Collect a vector of scanlines from the given raw data. | |
The base scanline class containing a row of facade::png::PixelSpan of the given pixel type.
| PixelType | The pixel type this scanline holds. |
| using facade::png::ScanlineBase< PixelType >::Span = PixelSpan<PixelType> |
The pixel span this scanline holds.
|
inline |
|
inline |
|
inline |
|
inline |
| ScanlineBase facade::png::ScanlineBase< PixelType >::filter | ( | FilterType | filter_type, |
| std::optional< ScanlineBase< PixelType > > | previous | ||
| ) | const |
Calculate the given filter type on this scanline.
| filter_type | The facade::png::FilterType to assign on the scanline. |
| previous | The previous scanline that is sometimes necessary for filtering. Typically the previous scanline if y > 0. |
| ScanlineBase facade::png::ScanlineBase< PixelType >::filter | ( | std::optional< ScanlineBase< PixelType > > | previous | ) | const |
Calculate all filters and determine the best compressed filter among them.
| previous | The previous scanline, if any. This is sometimes necessary for reconstruction procedures. |
| std::uint8_t ScanlineBase::filter_type |
Get the filter type of this scanline.
|
static |
Collect a vector of scanlines from the given raw data.
| header | The header of the given image to collect scanlines from. |
| raw_data | The raw pixel data from the uncompressed IDAT chunks. |
| Pixel ScanlineBase::get_pixel | ( | std::size_t | index | ) | const |
Get the pixel at the given index.
Index, in this case, is bound by the value returned by facade::png::Header::width.
| facade::exception::OutOfBounds |
| Span & facade::png::ScanlineBase< PixelType >::get_span | ( | std::size_t | index | ) |
Get the facade::png::PixelSpan reference at the given index.
Index, in this case, is bound by facade::png::ScanlineBase::pixel_span.
| facade::exception::OutOfBounds |
| const ScanlineBase< PixelType >::Span & ScanlineBase::get_span | ( | std::size_t | index | ) | const |
Get the const facade::png::PixelSpan reference at the given index.
Index, in this case, is bound by facade::png::ScanlineBase::pixel_span.
| facade::exception::OutOfBounds |
| Pixel ScanlineBase::operator[] | ( | std::size_t | index | ) | const |
Syntactic sugar for getting a facade::png::Pixel variant.
| __attribute__((used)) const std std::size_t facade::png::ScanlineBase< PixelType >::pixel_span | ( | ) | const |
Return a const reference to the underlying pixel data array.
Return the size, in terms of pixel span objects, of the underlying scanline.
| std::size_t facade::png::ScanlineBase< PixelType >::pixel_width | ( | ) | const |
Return the size, in samples, of the given scanline.
|
static |
Create a scanline object from raw data at the given data offset.
| raw_data | The raw data byte vector to read from. |
| offset | The offset to begin reading the scanline. |
| width | The width of the scanline. |
| facade::exception::OutOfBounds |
| ScanlineBase< PixelType > ScanlineBase::reconstruct | ( | std::optional< ScanlineBase< PixelType > > | previous | ) | const |
Reconstruct the scanline based on its filter value.
This essentially performs the inverse of what the facade::png::ScanlineBase::filter functions do.
| previous | The previous scanline, if any. This is sometimes necessary for reconstruction procedures. |
| void ScanlineBase::set_filter_type | ( | std::uint8_t | filter_type | ) |
Set the filter type of this scanline.
| void ScanlineBase::set_pixel | ( | const Pixel & | pixel, |
| std::size_t | index | ||
| ) |
Set the pixel at the given index.
Index, in this case, is bound by the value returned by facade::png::Header::width.
| facade::exception::OutOfBounds |
| void ScanlineBase::set_span | ( | const Span & | span, |
| std::size_t | index | ||
| ) |
Set the facade::png::PixelSpan object at the given index.
Index, in this case, is bound by facade::png::ScanlineBase::pixel_span.
| span | The pixel span to set. |
| index | The index of the span to set it to. |
| facade::exception::OutOfBounds |
| std::vector< std::uint8_t > ScanlineBase::to_raw |
Convert this scanline to raw byte form.