File Image.h¶
Go to the documentation of this file
//=============================================================================
// Copyright (c) 2026 FLIR Integrated Imaging Solutions, Inc. All Rights Reserved.
//
// This software is the confidential and proprietary information of FLIR
// Integrated Imaging Solutions, Inc. ("Confidential Information"). You
// shall not disclose such Confidential Information and shall use it only in
// accordance with the terms of the license agreement you entered into
// with FLIR Integrated Imaging Solutions, Inc. (FLIR).
//
// FLIR MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
// SOFTWARE, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE, OR NON-INFRINGEMENT. FLIR SHALL NOT BE LIABLE FOR ANY DAMAGES
// SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
// THIS SOFTWARE OR ITS DERIVATIVES.
//=============================================================================
#ifndef FLIR_SPINNAKER_IMAGE_H
#define FLIR_SPINNAKER_IMAGE_H
#include "Interface/IImage.h"
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable : 4996)
#elif defined(__GNUC__)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
#endif
namespace Spinnaker
{
class ImageStatistics;
class ImagePtr;
class ImageList;
class SPINNAKER_API Image : public IImage
{
public:
static ImagePtr Create();
static ImagePtr Create(const ImagePtr image);
static ImagePtr Create(
size_t width,
size_t height,
size_t offsetX,
size_t offsetY,
Spinnaker::PixelFormatEnums pixelFormat,
void* pData);
static ImagePtr Create(
size_t width,
size_t height,
size_t offsetX,
size_t offsetY,
PixelFormatEnums pixelFormat,
void* pData,
TLPayloadType dataPayloadType,
size_t dataSize);
virtual ~Image();
ColorProcessingAlgorithm GetColorProcessing() const;
void ResetImage(
size_t width,
size_t height,
size_t offsetX,
size_t offsetY,
Spinnaker::PixelFormatEnums pixelFormat);
void ResetImage(
size_t width,
size_t height,
size_t offsetX,
size_t offsetY,
Spinnaker::PixelFormatEnums pixelFormat,
void* pData);
void ResetImage(
size_t width,
size_t height,
size_t offsetX,
size_t offsetY,
PixelFormatEnums pixelFormat,
void* pData,
TLPayloadType dataPayloadType,
size_t dataSize);
/*
* Releases an image that was acquired by calling camera->GetNextImage().
*
* @see Init()
* @see CameraBase::GetNextImage( grabTimeout )
*/
void Release();
uint64_t GetID() const;
uint64_t GetStreamIndex() const;
GenICam::gcstring GetSerialNumber() const;
void* GetData() const;
float GetDataAbsoluteMax() const;
float GetDataAbsoluteMin() const;
void* GetPrivateData() const;
size_t GetBufferSize() const;
void DeepCopy(const ImagePtr pSrcImage);
size_t GetWidth() const;
size_t GetHeight() const;
size_t GetStride() const;
size_t GetBitsPerPixel() const;
size_t GetNumChannels() const;
size_t GetXOffset() const;
size_t GetYOffset() const;
size_t GetXPadding() const;
size_t GetYPadding() const;
uint64_t GetFrameID() const;
ImagePayloadType GetImagePayloadType() const;
size_t GetPayloadType() const;
TLPayloadType GetTLPayloadType() const;
uint64_t GetTLPixelFormat() const;
TLPixelFormatNamespace GetTLPixelFormatNamespace() const;
GenICam::gcstring GetPixelFormatName() const;
Spinnaker::PixelFormatEnums GetPixelFormat() const;
Spinnaker::PixelFormatIntType GetPixelFormatIntType() const;
bool IsIncomplete() const;
size_t GetValidPayloadSize() const;
uint64_t GetChunkLayoutId() const;
uint64_t GetTimeStamp() const;
void Save(const char* pFilename, ImageFileFormat format = SPINNAKER_IMAGE_FILE_FORMAT_FROM_FILE_EXT) const;
void Save(const char* pFilename, PNGOption& pOption) const;
void Save(const char* pFilename, PPMOption& pOption) const;
void Save(const char* pFilename, PGMOption& pOption) const;
void Save(const char* pFilename, TIFFOption& pOption) const;
void Save(const char* pFilename, JPEGOption& pOption) const;
void Save(const char* pFilename, JPG2Option& pOption) const;
void Save(const char* pFilename, BMPOption& pOption) const;
void Save(const char* pFilename, GenDCOption& pOption) const;
void Save(const char* pFilename, SIOption& pOption) const;
static ImagePtr Load(const char* pFilename, ImageFileFormat format = SPINNAKER_IMAGE_FILE_FORMAT_FROM_FILE_EXT);
bool HasChunkData() const;
const ChunkData& GetChunkData() const;
void CalculateStatistics(ImageStatistics& pStatistics);
bool HasCRC() const;
bool CheckCRC() const;
size_t GetImageSize() const;
bool IsInUse();
ImageStatus GetImageStatus() const;
static const char* GetImageStatusDescription(ImageStatus status);
bool IsCompressed() const;
protected:
friend class IDataStream;
friend class Stream;
friend class ImageConverter;
friend class ImageConverterIpp;
friend class ImageImpl;
friend class ImageListImpl;
friend class ImageFiler;
friend class ImageProcessorImpl;
friend class ImageStatsCalculator;
friend class ImageUtilityImpl;
friend class ImageUtilityPolarizationImpl;
friend class ImageUtilityPlanarImpl;
friend class ImageUtilityStereoImpl;
friend class SpinnakerGPUImpl;
friend class Relay::SpinRelayReceiver;
ImageData* GetImageData() const;
Image();
Image(const ImagePtr image);
Image(size_t width, size_t height, size_t offsetX, size_t offsetY, PixelFormatEnums pixelFormat, void* pData);
Image(
size_t width,
size_t height,
size_t offsetX,
size_t offsetY,
PixelFormatEnums pixelFormat,
void* pData,
TLPayloadType payloadType,
size_t payloadSize);
ImagePtr CreateShared() const;
void DeepCopy(const Image& pSrcImage);
static ImagePtr LoadData(void* pData, size_t dataSize);
void SaveData(void* pData, size_t dataSize);
void RegisterImageReleaseEvent(EventHandler& evtHandlerToRegister, void* pData);
private:
ImageData* m_pImageData;
};
} // namespace Spinnaker
#ifdef _MSC_VER
#pragma warning(pop)
#elif defined(__GNUC__)
#pragma GCC diagnostic pop
#endif
#endif // FLIR_SPINNAKER_IMAGE_H