Skip to content

InscoperAPI/API/Base/Image/Image.h

Namespaces

Name
Inscoper
Inscoper namespace.

Classes

Name
class Inscoper::Image
Image class represents an image with associated metadata.

Defines

Name
INSC_IMG_TAG_IMAGE_NUMBER
INSC_IMG_TAG_IMAGE_SUB_NUMBER
INSC_IMG_TAG_ELAPSED_TIME_MS
INSC_IMG_TAG_TIMESTAMP
INSC_IMG_TAG_FRAMES
INSC_IMG_TAG_SLICES
INSC_IMG_TAG_CHANNELS
INSC_IMG_TAG_CHANNEL
INSC_IMG_TAG_POSITION_NAME
INSC_IMG_TAG_FRAME_INDEX
INSC_IMG_TAG_FRAME
INSC_IMG_TAG_SLICE
INSC_IMG_TAG_SLICE_INDEX
INSC_IMG_TAG_PIXEL_SIZE_UM
INSC_IMG_TAG_PIXEL_SIZE
INSC_IMG_TAG_BINNING
INSC_IMG_TAG_SUMMARY
INSC_IMG_TAG_BIT_DEPTH
INSC_IMG_TAG_POSITION_INDEX
INSC_IMG_TAG_X_POSITION
INSC_IMG_TAG_Y_POSITION
INSC_IMG_TAG_Z_POSITION
INSC_IMG_TAG_FOCUS_POSITION
INSC_IMG_TAG_THETA_POSITION
INSC_IMG_TAG_GRAY8
INSC_IMG_TAG_GRAY11
INSC_IMG_TAG_GRAY12
INSC_IMG_TAG_GRAY14
INSC_IMG_TAG_GRAY16
INSC_IMG_TAG_GRAY32
INSC_IMG_TAG_GRAY32_FLOAT
INSC_IMG_TAG_GRAY64_FLOAT
INSC_IMG_TAG_RGB32
INSC_IMG_TAG_RGB64
INSC_IMG_TAG_BGR32
INSC_IMG_TAG_BGR64
INSC_IMG_TAG_TIME_INDEX
INSC_IMG_TAG_TIME
INSC_IMG_TAG_HEIGHT
INSC_IMG_TAG_WIDTH
INSC_IMG_TAG_PIXEL_TYPE
INSC_IMG_TAG_TILE_WIDTH
INSC_IMG_TAG_TILE_HEIGHT
INSC_IMG_TAG_SEQUENCE_NUMBER

Macros Documentation

define INSC_IMG_TAG_IMAGE_NUMBER

#define INSC_IMG_TAG_IMAGE_NUMBER "ImageNumber"

define INSC_IMG_TAG_IMAGE_SUB_NUMBER

#define INSC_IMG_TAG_IMAGE_SUB_NUMBER "ImageSubNumber"

define INSC_IMG_TAG_ELAPSED_TIME_MS

#define INSC_IMG_TAG_ELAPSED_TIME_MS "ElapsedTime-ms"

define INSC_IMG_TAG_TIMESTAMP

#define INSC_IMG_TAG_TIMESTAMP "Timestamp"

define INSC_IMG_TAG_FRAMES

#define INSC_IMG_TAG_FRAMES "Frames"

define INSC_IMG_TAG_SLICES

#define INSC_IMG_TAG_SLICES "Slices"

define INSC_IMG_TAG_CHANNELS

#define INSC_IMG_TAG_CHANNELS "Channels"

define INSC_IMG_TAG_CHANNEL

#define INSC_IMG_TAG_CHANNEL "Channel"

define INSC_IMG_TAG_POSITION_NAME

#define INSC_IMG_TAG_POSITION_NAME "PositionName"

define INSC_IMG_TAG_FRAME_INDEX

#define INSC_IMG_TAG_FRAME_INDEX "FrameIndex"

define INSC_IMG_TAG_FRAME

#define INSC_IMG_TAG_FRAME "Frame"

define INSC_IMG_TAG_SLICE

#define INSC_IMG_TAG_SLICE "Slice"

define INSC_IMG_TAG_SLICE_INDEX

#define INSC_IMG_TAG_SLICE_INDEX "SliceIndex"

define INSC_IMG_TAG_PIXEL_SIZE_UM

#define INSC_IMG_TAG_PIXEL_SIZE_UM "PixelSizeUm"

define INSC_IMG_TAG_PIXEL_SIZE

#define INSC_IMG_TAG_PIXEL_SIZE "PixelSize"

define INSC_IMG_TAG_BINNING

#define INSC_IMG_TAG_BINNING "Binning"

define INSC_IMG_TAG_SUMMARY

#define INSC_IMG_TAG_SUMMARY "Summary"

define INSC_IMG_TAG_BIT_DEPTH

#define INSC_IMG_TAG_BIT_DEPTH "BitDepth"

define INSC_IMG_TAG_POSITION_INDEX

#define INSC_IMG_TAG_POSITION_INDEX "PositionIndex"

define INSC_IMG_TAG_X_POSITION

#define INSC_IMG_TAG_X_POSITION "XPosition"

define INSC_IMG_TAG_Y_POSITION

#define INSC_IMG_TAG_Y_POSITION "YPosition"

define INSC_IMG_TAG_Z_POSITION

#define INSC_IMG_TAG_Z_POSITION "ZPosition"

define INSC_IMG_TAG_FOCUS_POSITION

#define INSC_IMG_TAG_FOCUS_POSITION "FocusPosition"

define INSC_IMG_TAG_THETA_POSITION

#define INSC_IMG_TAG_THETA_POSITION "ThetaPosition"

define INSC_IMG_TAG_GRAY8

#define INSC_IMG_TAG_GRAY8 "GRAY8"

define INSC_IMG_TAG_GRAY11

#define INSC_IMG_TAG_GRAY11 "GRAY11"

define INSC_IMG_TAG_GRAY12

#define INSC_IMG_TAG_GRAY12 "GRAY12"

define INSC_IMG_TAG_GRAY14

#define INSC_IMG_TAG_GRAY14 "GRAY14"

define INSC_IMG_TAG_GRAY16

#define INSC_IMG_TAG_GRAY16 "GRAY16"

define INSC_IMG_TAG_GRAY32

#define INSC_IMG_TAG_GRAY32 "GRAY32"

define INSC_IMG_TAG_GRAY32_FLOAT

#define INSC_IMG_TAG_GRAY32_FLOAT "GRAY32Float"

define INSC_IMG_TAG_GRAY64_FLOAT

#define INSC_IMG_TAG_GRAY64_FLOAT "GRAY64Float"

define INSC_IMG_TAG_RGB32

#define INSC_IMG_TAG_RGB32 "RGB32"

define INSC_IMG_TAG_RGB64

#define INSC_IMG_TAG_RGB64 "RGB64"

define INSC_IMG_TAG_BGR32

#define INSC_IMG_TAG_BGR32 "BGR32"

define INSC_IMG_TAG_BGR64

#define INSC_IMG_TAG_BGR64 "BGR64"

define INSC_IMG_TAG_TIME_INDEX

#define INSC_IMG_TAG_TIME_INDEX INSC_IMG_TAG_FRAME_INDEX

define INSC_IMG_TAG_TIME

#define INSC_IMG_TAG_TIME INSC_IMG_TAG_FRAME

define INSC_IMG_TAG_HEIGHT

#define INSC_IMG_TAG_HEIGHT "Height"

define INSC_IMG_TAG_WIDTH

#define INSC_IMG_TAG_WIDTH "Width"

define INSC_IMG_TAG_PIXEL_TYPE

#define INSC_IMG_TAG_PIXEL_TYPE "PixelType"

define INSC_IMG_TAG_TILE_WIDTH

#define INSC_IMG_TAG_TILE_WIDTH "tileWidth"

define INSC_IMG_TAG_TILE_HEIGHT

#define INSC_IMG_TAG_TILE_HEIGHT "tileHeight"

define INSC_IMG_TAG_SEQUENCE_NUMBER

#define INSC_IMG_TAG_SEQUENCE_NUMBER "SequenceNumber"

Source code

#ifndef IMAGE_H
#define IMAGE_H

#include <Base/Image/EPixelType.h>
#include <Base/Image/Metadata.h>
#include <Global.h>

#include <map>
#include <memory>
#include <string>
#include <vector>

#define INSC_IMG_TAG_IMAGE_NUMBER "ImageNumber"
#define INSC_IMG_TAG_IMAGE_SUB_NUMBER "ImageSubNumber"
#define INSC_IMG_TAG_ELAPSED_TIME_MS "ElapsedTime-ms"
#define INSC_IMG_TAG_TIMESTAMP "Timestamp"
#define INSC_IMG_TAG_FRAMES "Frames"
#define INSC_IMG_TAG_SLICES "Slices"
#define INSC_IMG_TAG_CHANNELS "Channels"
#define INSC_IMG_TAG_CHANNEL "Channel"
#define INSC_IMG_TAG_POSITION_NAME "PositionName"
#define INSC_IMG_TAG_FRAME_INDEX "FrameIndex"
#define INSC_IMG_TAG_FRAME "Frame"
#define INSC_IMG_TAG_SLICE "Slice"
#define INSC_IMG_TAG_SLICE_INDEX "SliceIndex"
#define INSC_IMG_TAG_PIXEL_SIZE_UM "PixelSizeUm"
#define INSC_IMG_TAG_PIXEL_SIZE "PixelSize"
#define INSC_IMG_TAG_BINNING "Binning"
#define INSC_IMG_TAG_SUMMARY "Summary"
#define INSC_IMG_TAG_BIT_DEPTH "BitDepth"
#define INSC_IMG_TAG_POSITION_INDEX "PositionIndex"
#define INSC_IMG_TAG_X_POSITION "XPosition"
#define INSC_IMG_TAG_Y_POSITION "YPosition"
#define INSC_IMG_TAG_Z_POSITION "ZPosition"
#define INSC_IMG_TAG_FOCUS_POSITION "FocusPosition"
#define INSC_IMG_TAG_THETA_POSITION "ThetaPosition"

#define INSC_IMG_TAG_GRAY8 "GRAY8"
#define INSC_IMG_TAG_GRAY11 "GRAY11"
#define INSC_IMG_TAG_GRAY12 "GRAY12"
#define INSC_IMG_TAG_GRAY14 "GRAY14"
#define INSC_IMG_TAG_GRAY16 "GRAY16"
#define INSC_IMG_TAG_GRAY32 "GRAY32"
#define INSC_IMG_TAG_GRAY32_FLOAT "GRAY32Float"
#define INSC_IMG_TAG_GRAY64_FLOAT "GRAY64Float"
#define INSC_IMG_TAG_RGB32 "RGB32"
#define INSC_IMG_TAG_RGB64 "RGB64"
#define INSC_IMG_TAG_BGR32 "BGR32"
#define INSC_IMG_TAG_BGR64 "BGR64"

#define INSC_IMG_TAG_TIME_INDEX INSC_IMG_TAG_FRAME_INDEX
#define INSC_IMG_TAG_TIME INSC_IMG_TAG_FRAME
#define INSC_IMG_TAG_HEIGHT "Height"
#define INSC_IMG_TAG_WIDTH "Width"
#define INSC_IMG_TAG_PIXEL_TYPE "PixelType"

#define INSC_IMG_TAG_TILE_WIDTH "tileWidth"
#define INSC_IMG_TAG_TILE_HEIGHT "tileHeight"

#define INSC_IMG_TAG_SEQUENCE_NUMBER "SequenceNumber"

namespace Inscoper {

class INSCOPER_EXPORT Image {
public:
  Image(const std::vector<unsigned char> &imageData, const std::map<std::string, Inscoper::Metadata> &metadata);

  unsigned int getPixelSize() INSCOPER_EXCEPTION;

  unsigned int getBitDepth() INSCOPER_EXCEPTION;

  unsigned int getWidth() const INSCOPER_EXCEPTION;

  unsigned int getHeight() const INSCOPER_EXCEPTION;

  Inscoper::EPixelType getPixelType();

  void *getImageData();

  bool hasMetadata(const std::string &name);

  void addMetadata(const std::string &name, const Inscoper::Metadata &value);

  void removeMetadata(const std::string &name) INSCOPER_EXCEPTION;

  const std::map<std::string, Inscoper::Metadata> &getMetadata() const;

  Inscoper::Metadata getMetadata(const std::string &key) const INSCOPER_EXCEPTION;

  void setMetadata(const std::map<std::string, Inscoper::Metadata> &metadata);

private:
  std::vector<unsigned char> _imageData;
  std::map<std::string, Inscoper::Metadata> _metadata;
};

typedef std::shared_ptr<Image> ImagePtr;

} // namespace Inscoper

#endif // IMAGE_H

Updated on 2026-09-03 at 12:14:17 +0200