IDS peak IPL  v1.9.2
peak_ipl_image_writer.hpp
Go to the documentation of this file.
1 
11 #pragma once
12 
18 
19 #include <cstdint>
20 #include <string>
21 
22 namespace peak
23 {
24 namespace ipl
25 {
26 
27 class Image;
28 
35 class ImageWriter final
36 {
37 public:
38  ImageWriter() = delete;
39 
43  struct PNGParameter final
44  {
46  : Quality(100)
47  {}
48  // Compression parameter from 0 to 100 -> 100 means quality level 0 for PNG
49  uint32_t Quality = 100;
50  };
51 
55  struct JPEGParameter final
56  {
58  : Quality(75)
59  {}
60  // Quality parameter from 0 to 100
61  uint32_t Quality = 75;
62  };
63 
87  static void WriteAsBMP(const std::string& filePath, const Image& imageToSave);
88 
114  static void WriteAsPNG(
115  const std::string& filePath, const Image& imageToSave, const PNGParameter& parameter = PNGParameter());
116 
138  static void WriteAsJPG(
139  const std::string& filePath, const Image& imageToSave, const JPEGParameter& parameter = JPEGParameter());
140 
158  static void WriteAsRAW(const std::string& filePath, const Image& imageToSave);
159 
174  static void Write(const std::string& filePath, const Image& imageToSave);
175 };
176 
177 inline void ImageWriter::WriteAsBMP(const std::string& filePath, const Image& imageToSave)
178 {
181  ImageBackendAccessor::BackendHandle(imageToSave), filePath.c_str(), filePath.size());
182  });
183 }
184 
186  const std::string& filePath, const Image& imageToSave, const PNGParameter& parameter)
187 {
190  ImageBackendAccessor::BackendHandle(imageToSave), parameter.Quality, filePath.c_str(), filePath.size());
191  });
192 }
193 
195  const std::string& filePath, const Image& imageToSave, const JPEGParameter& parameter)
196 {
199  ImageBackendAccessor::BackendHandle(imageToSave), parameter.Quality, filePath.c_str(), filePath.size());
200  });
201 }
202 
203 inline void ImageWriter::WriteAsRAW(const std::string& filePath, const Image& imageToSave)
204 {
207  ImageBackendAccessor::BackendHandle(imageToSave), filePath.c_str(), filePath.size());
208  });
209 }
210 
211 inline void ImageWriter::Write(const std::string& filePath, const Image& imageToSave)
212 {
215  ImageBackendAccessor::BackendHandle(imageToSave), filePath.c_str(), filePath.size());
216  });
217 }
218 
219 } /* namespace ipl */
220 } /* namespace peak */
uint32_t Quality
Definition: peak_ipl_image_writer.hpp:49
static void WriteAsPNG(const std::string &filePath, const Image &imageToSave, const PNGParameter &parameter=PNGParameter())
Writes the specified image to the filesystem as PNG image.
Definition: peak_ipl_image_writer.hpp:185
The parameter for the PNG writes, e.g. compression quality.
Definition: peak_ipl_image_writer.hpp:43
static void WriteAsRAW(const std::string &filePath, const Image &imageToSave)
Writes the specified image to the filesystem as a raw binary image.
Definition: peak_ipl_image_writer.hpp:203
#define PEAK_IPL_C_ABI_PREFIX
Definition: peak_ipl_dll_defines.h:16
Writes an image to a file.
Definition: peak_ipl_image_writer.hpp:35
static void WriteAsJPG(const std::string &filePath, const Image &imageToSave, const JPEGParameter &parameter=JPEGParameter())
Writes the specified image to the filesystem as JPEG image.
Definition: peak_ipl_image_writer.hpp:194
The "peak::ipl" namespace contains the whole image processing library.
Definition: peak_ipl_binning.hpp:22
PEAK_IPL_C_API PEAK_IPL_ImageWriter_WriteAsBMP(PEAK_IPL_IMAGE_HANDLE inputImageHandle, const char *filePath, size_t filePathSize)
Writes an image as BMP image file.
void ExecuteAndMapReturnCodes(const CallableType &callableObject)
Definition: peak_ipl_exception.hpp:182
Stores the pixel format, width and height of an image and the pointer to the image buffer...
Definition: peak_ipl_image.hpp:39
PEAK_IPL_C_API PEAK_IPL_ImageWriter_WriteAsJPG(PEAK_IPL_IMAGE_HANDLE inputImageHandle, uint32_t quality, const char *filePath, size_t filePathSize)
Writes an image as JPEG image file.
PEAK_IPL_C_API PEAK_IPL_ImageWriter_WriteAsRAW(PEAK_IPL_IMAGE_HANDLE inputImageHandle, const char *filePath, size_t filePathSize)
Writes an image as raw data binary file.
PEAK_IPL_C_API PEAK_IPL_ImageWriter_WriteAsPNG(PEAK_IPL_IMAGE_HANDLE inputImageHandle, uint32_t quality, const char *filePath, size_t filePathSize)
Writes an image as PNG image file.
The Parameter for the JPEG writes, e.g. compression quality.
Definition: peak_ipl_image_writer.hpp:55
JPEGParameter()
Definition: peak_ipl_image_writer.hpp:57
static void Write(const std::string &filePath, const Image &imageToSave)
Writes the specified image to the filesystem. The type is specified by the given file ending in file ...
Definition: peak_ipl_image_writer.hpp:211
PNGParameter()
Definition: peak_ipl_image_writer.hpp:45
static void WriteAsBMP(const std::string &filePath, const Image &imageToSave)
Writes the specified image to the filesystem as BMP image.
Definition: peak_ipl_image_writer.hpp:177
uint32_t Quality
Definition: peak_ipl_image_writer.hpp:61
PEAK_IPL_C_API PEAK_IPL_ImageWriter_Write(PEAK_IPL_IMAGE_HANDLE inputImageHandle, const char *filePath, size_t filePathSize)
Writes an image to file and selects the format by file ending. In case the format has parameters...