16#ifndef LIEF_PE_RESOURCE_ICON_H
17#define LIEF_PE_RESOURCE_ICON_H
33struct pe_resource_icon_group;
112 return pixels_.size();
120 void id(uint32_t
id) {
157 pixels_ = std::move(
pixels);
163 void save(
const std::string& filename)
const;
175 uint8_t color_count_ = 0;
176 uint8_t reserved_ = 0;
177 uint16_t planes_ = 0;
178 uint16_t bit_count_ = 0;
179 uint32_t id_ = uint32_t(-1);
181 uint32_t sublang_ = 0 ;
182 std::vector<uint8_t> pixels_;
ResourceIcon(const details::pe_resource_icon_group &header)
void pixels(std::vector< uint8_t > pixels)
Definition ResourceIcon.hpp:156
void height(uint8_t height)
Definition ResourceIcon.hpp:136
static result< ResourceIcon > from_bytes(LIEF::span< const uint8_t > bytes)
Definition ResourceIcon.hpp:49
uint32_t lang() const
Language associated with the icon.
Definition ResourceIcon.hpp:71
void id(uint32_t id)
Definition ResourceIcon.hpp:120
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:76
void width(uint8_t width)
Definition ResourceIcon.hpp:132
static result< ResourceIcon > from_serialization(const std::vector< uint8_t > &bytes)
Definition ResourceIcon.hpp:45
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:152
uint8_t height() const
Height in pixels of the image.
Definition ResourceIcon.hpp:86
uint16_t planes() const
Color Planes.
Definition ResourceIcon.hpp:101
void color_count(uint8_t color_count)
Definition ResourceIcon.hpp:140
void planes(uint16_t planes)
Definition ResourceIcon.hpp:148
uint32_t id() const
Id associated with the icon.
Definition ResourceIcon.hpp:66
std::vector< uint8_t > serialize() const
span< const uint8_t > pixels() const
Pixels of the image (as bytes).
Definition ResourceIcon.hpp:116
ResourceIcon(const details::pe_icon_header &header)
ResourceIcon(ResourceIcon &&)=default
void sublang(uint32_t sublang)
Definition ResourceIcon.hpp:128
uint8_t reserved() const
Reserved (must be 0).
Definition ResourceIcon.hpp:96
uint8_t color_count() const
Number of colors in image (0 if >=8bpp).
Definition ResourceIcon.hpp:91
void accept(Visitor &visitor) const override
uint32_t size() const
Size in bytes of the image.
Definition ResourceIcon.hpp:111
~ResourceIcon() override=default
friend class ResourcesManager
Definition ResourceIcon.hpp:38
uint16_t bit_count() const
Bits per pixel.
Definition ResourceIcon.hpp:106
void save(const std::string &filename) const
Save the icon to the given filename.
void lang(uint32_t lang)
Definition ResourceIcon.hpp:124
void reserved(uint8_t reserved)
Definition ResourceIcon.hpp:144
ResourceIcon & operator=(const ResourceIcon &)=default
uint8_t width() const
Width in pixels of the image.
Definition ResourceIcon.hpp:81
The Resource Manager provides an enhanced API to manipulate the resource tree.
Definition ResourcesManager.hpp:38
Definition Visitor.hpp:212
Wrapper that contains an Object (T) or an error.
Definition errors.hpp:77
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
#define LIEF_API
Definition visibility.h:43