16#ifndef LIEF_PE_RESOURCE_ICON_H
17#define LIEF_PE_RESOURCE_ICON_H
33struct pe_resource_icon_group;
111 return pixels_.size();
119 void id(uint32_t
id) {
156 pixels_ = std::move(
pixels);
162 void save(
const std::string& filename)
const;
173 uint8_t color_count_ = 0;
174 uint8_t reserved_ = 0;
175 uint16_t planes_ = 0;
176 uint16_t bit_count_ = 0;
177 uint32_t id_ = uint32_t(-1);
179 uint32_t sublang_ = 0 ;
180 std::vector<uint8_t> pixels_;
ResourceIcon(const details::pe_resource_icon_group &header)
void pixels(std::vector< uint8_t > pixels)
Definition ResourceIcon.hpp:155
void height(uint8_t height)
Definition ResourceIcon.hpp:135
static result< ResourceIcon > from_bytes(LIEF::span< const uint8_t > bytes)
Definition ResourceIcon.hpp:48
uint32_t lang() const
Language associated with the icon.
Definition ResourceIcon.hpp:70
void id(uint32_t id)
Definition ResourceIcon.hpp:119
static result< ResourceIcon > from_serialization(const uint8_t *buffer, size_t size)
uint32_t sublang() const
Sub language associated with the icon.
Definition ResourceIcon.hpp:75
void width(uint8_t width)
Definition ResourceIcon.hpp:131
static result< ResourceIcon > from_serialization(const std::vector< uint8_t > &bytes)
Definition ResourceIcon.hpp:44
ResourceIcon(const ResourceIcon &)=default
friend std::ostream & operator<<(std::ostream &os, const ResourceIcon &entry)
ResourceIcon & operator=(ResourceIcon &&)=default
void bit_count(uint16_t bit_count)
Definition ResourceIcon.hpp:151
uint8_t height() const
Height in pixels of the image.
Definition ResourceIcon.hpp:85
uint16_t planes() const
Color Planes.
Definition ResourceIcon.hpp:100
void color_count(uint8_t color_count)
Definition ResourceIcon.hpp:139
void planes(uint16_t planes)
Definition ResourceIcon.hpp:147
uint32_t id() const
Id associated with the icon.
Definition ResourceIcon.hpp:65
std::vector< uint8_t > serialize() const
span< const uint8_t > pixels() const
Pixels of the image (as bytes).
Definition ResourceIcon.hpp:115
ResourceIcon(const details::pe_icon_header &header)
ResourceIcon(ResourceIcon &&)=default
void sublang(uint32_t sublang)
Definition ResourceIcon.hpp:127
uint8_t reserved() const
Reserved (must be 0).
Definition ResourceIcon.hpp:95
uint8_t color_count() const
Number of colors in image (0 if >=8bpp).
Definition ResourceIcon.hpp:90
void accept(Visitor &visitor) const override
uint32_t size() const
Size in bytes of the image.
Definition ResourceIcon.hpp:110
~ResourceIcon() override=default
friend class ResourcesManager
Definition ResourceIcon.hpp:38
uint16_t bit_count() const
Bits per pixel.
Definition ResourceIcon.hpp:105
void save(const std::string &filename) const
Save the icon to the given filename.
void lang(uint32_t lang)
Definition ResourceIcon.hpp:123
void reserved(uint8_t reserved)
Definition ResourceIcon.hpp:143
ResourceIcon & operator=(const ResourceIcon &)=default
uint8_t width() const
Width in pixels of the image.
Definition ResourceIcon.hpp:80
The Resource Manager provides an enhanced API to manipulate the resource tree.
Definition ResourcesManager.hpp:38
Definition Visitor.hpp:210
Definition DataDirectory.hpp:37
Namespace related to the LIEF's PE module.
Definition Abstract/Header.hpp:32
LIEF namespace.
Definition Abstract/Binary.hpp:40
tcb::span< ElementType, Extent > span
Definition span.hpp:22
tl::expected< T, lief_errors > result
Wrapper that contains an Object (T) or an error.
Definition errors.hpp:75
#define LIEF_API
Definition visibility.h:41