LIEF: Library to Instrument Executable Formats Version 0.17.0
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
16#ifndef LIEF_PE_RESOURCE_ICON_H
17#define LIEF_PE_RESOURCE_ICON_H
33struct pe_resource_icon_group;
38 friend class ResourcesManager;
41 static result<ResourceIcon>
45 return from_serialization(bytes.data(), bytes.size());
49 return from_serialization(bytes.data(), bytes.size_bytes());
57 ResourceIcon&
operator=(
const ResourceIcon&) =
default;
68 uint32_t
lang()
const {
78 uint8_t
width()
const {
108 uint32_t
size()
const {
111 return pixels_.size();
113 span<const uint8_t>
pixels()
const {
119 void id(uint32_t
id) {
140 color_count_ = color_count;
144 reserved_ = reserved;
152 bit_count_ = bit_count;
155 void pixels(std::vector<uint8_t> pixels) {
156 pixels_ = std::move(pixels);
158 void save(
const std::string& filename)
const;
166 void accept(Visitor& visitor)
const override;
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_;
Definition ResourceIcon.hpp:37
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
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 DataDirectory.hpp:37
Namespace related to the LIEF's PE module.
Definition Abstract/Header.hpp:32
LIEF namespace.
Definition Abstract/Binary.hpp:36
tcb::span< ElementType, Extent > span
Definition span.hpp:22
#define LIEF_API
Definition visibility.h:41