IDS peak genericC++ v1.14.0
Loading...
Searching...
No Matches
peak_image_view.hpp
Go to the documentation of this file.
1
10
11#pragma once
12
17
18#include <memory>
19
23namespace peak
24{
25namespace core
26{
27class Buffer;
28class BufferPart;
29
30namespace detail
31{
41} // namespace detail
42
57{
58public:
65 explicit ImageView(const std::shared_ptr<Buffer>& buffer);
66
73 explicit ImageView(const std::shared_ptr<BufferPart>& part);
74
81 PEAK_COMMON_NO_DISCARD const uint8_t* GetData() const override;
82
89 PEAK_COMMON_NO_DISCARD uint8_t* GetData() override;
90
97 PEAK_COMMON_NO_DISCARD std::size_t GetLineStartOffset() const override;
98
105 PEAK_COMMON_NO_DISCARD std::size_t GetSizeInBytes() const override;
106
113
120
127
133 PEAK_COMMON_NO_DISCARD uint32_t GetWidth() const override;
134
140 PEAK_COMMON_NO_DISCARD uint32_t GetHeight() const override;
141
147 PEAK_COMMON_NO_DISCARD size_t GetBitsPerPixel() const override;
148
154 PEAK_COMMON_NO_DISCARD size_t GetBytesPerLine() const override;
155
161 PEAK_COMMON_NO_DISCARD std::shared_ptr<peak::common::Metadata> GetMetadata() override;
162
168 PEAK_COMMON_NO_DISCARD std::shared_ptr<const peak::common::Metadata> GetMetadata() const override;
169
182 PEAK_COMMON_NO_DISCARD std::shared_ptr<peak::core::Buffer> GetParentBuffer() const;
183
184private:
185 explicit ImageView(const detail::ExtractedPayload& payload, std::shared_ptr<peak::common::Metadata> metadata);
186 std::shared_ptr<peak::common::Metadata> m_metadata;
187 std::weak_ptr<peak::core::Buffer> m_parentBuffer;
188 const detail::ExtractedPayload m_payload;
189};
190
191} // namespace core
192} // namespace peak
Interface for viewing image pixel data from arbitrary sources.
Definition peak_common_iimageview.hpp:42
Provides information and utility functions for pixel formats.
Definition peak_common_pixel_format.hpp:225
Represents a GenTL buffer module.
Definition peak_buffer.hpp:87
Represents a buffer part.
Definition peak_buffer_part.hpp:60
PEAK_COMMON_NO_DISCARD uint32_t GetHeight() const override
Height of the image in pixels.
Definition peak_image_view_impl.hpp:325
PEAK_COMMON_NO_DISCARD std::size_t GetSizeInBytes() const override
Returns the number of bytes in a single image row.
Definition peak_image_view_impl.hpp:300
PEAK_COMMON_NO_DISCARD std::size_t GetLineStartOffset() const override
Returns the byte offset to the first pixel of a line.
Definition peak_image_view_impl.hpp:295
PEAK_COMMON_NO_DISCARD size_t GetBytesPerLine() const override
The amount of bytes per line.
Definition peak_image_view_impl.hpp:335
PEAK_COMMON_NO_DISCARD peak::common::PixelFormatInfo GetPixelFormatInfo() const override
Information object for the PixelFormat of the contained image.
Definition peak_image_view_impl.hpp:310
PEAK_COMMON_NO_DISCARD size_t GetBitsPerPixel() const override
The amount of bits in one pixel.
Definition peak_image_view_impl.hpp:330
PEAK_COMMON_NO_DISCARD std::shared_ptr< peak::core::Buffer > GetParentBuffer() const
The parent buffer object, the image view was created from.
Definition peak_image_view_impl.hpp:350
PEAK_COMMON_NO_DISCARD uint32_t GetWidth() const override
Width of the image in pixels.
Definition peak_image_view_impl.hpp:320
PEAK_COMMON_NO_DISCARD const uint8_t * GetData() const override
Returns a pointer to the start of the first line that contains valid image data (read-only).
Definition peak_image_view_impl.hpp:285
ImageView(const std::shared_ptr< Buffer > &buffer)
Construct an ImageView from a Buffer.
Definition peak_image_view_impl.hpp:273
PEAK_COMMON_NO_DISCARD peak::common::PixelFormat GetPixelFormat() const override
PixelFormat of the contained image.
Definition peak_image_view_impl.hpp:305
PEAK_COMMON_NO_DISCARD peak::common::Size GetSize() const override
Get the dimensions of the image. I.e. Width, Height, etc.
Definition peak_image_view_impl.hpp:315
PEAK_COMMON_NO_DISCARD std::shared_ptr< peak::common::Metadata > GetMetadata() override
The metadata object belonging to the image.
Definition peak_image_view_impl.hpp:340
#define PEAK_COMMON_NO_DISCARD
Compatability macro for the nodiscard attribute.
Definition peak_common_defines.h:86
detail::SizeT< uint32_t > Size
Size with unsigned 32-bit integer dimensions.
Definition peak_common_size.hpp:273
PixelFormat
Enum listing all supported pixel formats and their internal IDs.
Definition peak_common_pixel_format.hpp:52
Definition peak_image_view.hpp:31
The "core" namespace contains the direct GenAPI and GenTL wrapper.
Definition peak_buffer.hpp:34
The "peak" namespace directly contains convenience functionality like the DeviceManager as well as th...
Definition peak_dynamic_loader.h:33
Enum holding the possible pixel format names.
Definition peak_image_view.hpp:33
size_t bytesPerLine
Definition peak_image_view.hpp:38
size_t lineStartOffset
Definition peak_image_view.hpp:39
size_t dataSize
Definition peak_image_view.hpp:37
peak::common::PixelFormat pixelFormat
Definition peak_image_view.hpp:35
peak::common::Size size
Definition peak_image_view.hpp:34
void * dataPtr
Definition peak_image_view.hpp:36