16#ifndef LIEF_PE_RESOURCE_ICON_H
17#define LIEF_PE_RESOURCE_ICON_H
34struct pe_resource_icon_group;
113 return pixels_.size();
121 void id(uint32_t
id) {
158 pixels_ = std::move(
pixels);
164 void save(
const std::string& filename)
const;
176 uint8_t color_count_ = 0;
177 uint8_t reserved_ = 0;
178 uint16_t planes_ = 0;
179 uint16_t bit_count_ = 0;
180 uint32_t id_ = uint32_t(-1);
182 uint32_t sublang_ = 0 ;
183 std::vector<uint8_t> pixels_;
ResourceIcon(const details::pe_resource_icon_group &header)
void pixels(std::vector< uint8_t > pixels)
Definition ResourceIcon.hpp:157
void height(uint8_t height)
Definition ResourceIcon.hpp:137
static result< ResourceIcon > from_bytes(LIEF::span< const uint8_t > bytes)
Definition ResourceIcon.hpp:50
uint32_t lang() const
Language associated with the icon.
Definition ResourceIcon.hpp:72
void id(uint32_t id)
Definition ResourceIcon.hpp:121
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:77
void width(uint8_t width)
Definition ResourceIcon.hpp:133
static result< ResourceIcon > from_serialization(const std::vector< uint8_t > &bytes)
Definition ResourceIcon.hpp:46
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:153
uint8_t height() const
Height in pixels of the image.
Definition ResourceIcon.hpp:87
uint16_t planes() const
Color Planes.
Definition ResourceIcon.hpp:102
void color_count(uint8_t color_count)
Definition ResourceIcon.hpp:141
void planes(uint16_t planes)
Definition ResourceIcon.hpp:149
uint32_t id() const
Id associated with the icon.
Definition ResourceIcon.hpp:67
std::vector< uint8_t > serialize() const
span< const uint8_t > pixels() const
Pixels of the image (as bytes).
Definition ResourceIcon.hpp:117
ResourceIcon(const details::pe_icon_header &header)
ResourceIcon(ResourceIcon &&)=default
void sublang(uint32_t sublang)
Definition ResourceIcon.hpp:129
uint8_t reserved() const
Reserved (must be 0).
Definition ResourceIcon.hpp:97
uint8_t color_count() const
Number of colors in image (0 if >=8bpp).
Definition ResourceIcon.hpp:92
void accept(Visitor &visitor) const override
uint32_t size() const
Size in bytes of the image.
Definition ResourceIcon.hpp:112
~ResourceIcon() override=default
friend class ResourcesManager
Definition ResourceIcon.hpp:39
uint16_t bit_count() const
Bits per pixel.
Definition ResourceIcon.hpp:107
void save(const std::string &filename) const
Save the icon to the given filename.
void lang(uint32_t lang)
Definition ResourceIcon.hpp:125
void reserved(uint8_t reserved)
Definition ResourceIcon.hpp:145
ResourceIcon & operator=(const ResourceIcon &)=default
uint8_t width() const
Width in pixels of the image.
Definition ResourceIcon.hpp:82
The Resource Manager provides an enhanced API to manipulate the resource tree.
Definition ResourcesManager.hpp:37
Definition Visitor.hpp:212
Wrapper that contains an Object (T) or an error.
Definition errors.hpp:78
#define LIEF_LIFETIMEBOUND
Definition compiler_attributes.hpp:72
Definition DataDirectory.hpp:37
Namespace related to the LIEF's PE module.
Definition Abstract/Header.hpp:32
LIEF namespace.
Definition Abstract/Binary.hpp:41
tcb::span< ElementType, Extent > span
Definition span.hpp:22
#define LIEF_API
Definition visibility.h:45