IDS peak genericC++ v1.16.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
52{
58
67};
68
69
84{
85public:
97 explicit ImageView(const std::shared_ptr<Buffer>& buffer);
98
111 ImageView(const std::shared_ptr<Buffer>& buffer, MetadataExtractionMode mode);
112
124 explicit ImageView(const std::shared_ptr<BufferPart>& part);
125
138 ImageView(const std::shared_ptr<BufferPart>& part, MetadataExtractionMode mode);
139
146 PEAK_COMMON_NO_DISCARD const uint8_t* GetData() const override;
147
154 PEAK_COMMON_NO_DISCARD uint8_t* GetData() override;
155
162 PEAK_COMMON_NO_DISCARD std::size_t GetLineStartOffset() const override;
163
170 PEAK_COMMON_NO_DISCARD std::size_t GetSizeInBytes() const override;
171
178
185
192
198 PEAK_COMMON_NO_DISCARD uint32_t GetWidth() const override;
199
205 PEAK_COMMON_NO_DISCARD uint32_t GetHeight() const override;
206
212 PEAK_COMMON_NO_DISCARD size_t GetBitsPerPixel() const override;
213
219 PEAK_COMMON_NO_DISCARD size_t GetBytesPerLine() const override;
220
226 PEAK_COMMON_NO_DISCARD std::shared_ptr<peak::common::Metadata> GetMetadata() override;
227
233 PEAK_COMMON_NO_DISCARD std::shared_ptr<const peak::common::Metadata> GetMetadata() const override;
234
247 PEAK_COMMON_NO_DISCARD std::shared_ptr<peak::core::Buffer> GetParentBuffer() const;
248
249private:
250 explicit ImageView(const detail::ExtractedPayload& payload, std::shared_ptr<peak::common::Metadata> metadata);
251 std::shared_ptr<peak::common::Metadata> m_metadata;
252 std::weak_ptr<peak::core::Buffer> m_parentBuffer;
253 const detail::ExtractedPayload m_payload;
254};
255
256} // namespace core
257} // 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:239
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:401
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:376
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:371
PEAK_COMMON_NO_DISCARD size_t GetBytesPerLine() const override
The amount of bytes per line.
Definition peak_image_view_impl.hpp:411
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:386
PEAK_COMMON_NO_DISCARD size_t GetBitsPerPixel() const override
The amount of bits in one pixel.
Definition peak_image_view_impl.hpp:406
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:426
PEAK_COMMON_NO_DISCARD uint32_t GetWidth() const override
Width of the image in pixels.
Definition peak_image_view_impl.hpp:396
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:361
ImageView(const std::shared_ptr< Buffer > &buffer)
Construct an ImageView from a Buffer.
Definition peak_image_view_impl.hpp:334
PEAK_COMMON_NO_DISCARD peak::common::PixelFormat GetPixelFormat() const override
PixelFormat of the contained image.
Definition peak_image_view_impl.hpp:381
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:391
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:416
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:64
Definition peak_image_view.hpp:31
The "core" namespace contains the direct GenAPI and GenTL wrapper.
Definition peak_buffer.hpp:34
MetadataExtractionMode
Controls how metadata is extracted when constructing an ImageView.
Definition peak_image_view.hpp:52
@ Minimal
Definition peak_image_view.hpp:57
@ Extended
Definition peak_image_view.hpp:66
The "peak" namespace directly contains convenience functionality like the DeviceManager as well as th...
Definition peak_dynamic_loader.h:35
#define PEAK_COMMON_NO_DISCARD
Definition peak_common_defines.h:94
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