IDS peak IPL v1.12.1
Loading...
Searching...
No Matches
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
22namespace peak
23{
24namespace ipl
25{
26
27class Image;
28
35class ImageWriter final
36{
37public:
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
177inline 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
203inline void ImageWriter::WriteAsRAW(const std::string& filePath, const Image& imageToSave)
204{
207 ImageBackendAccessor::BackendHandle(imageToSave), filePath.c_str(), filePath.size());
208 });
209}
210
211inline 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 */
Stores the pixel format, width and height of an image and the pointer to the image buffer.
Definition peak_ipl_image.hpp:40
Writes an image to a file.
Definition peak_ipl_image_writer.hpp:36
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
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
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
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
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
void ExecuteAndMapReturnCodes(const CallableType &callableObject)
Definition peak_ipl_exception.hpp:182
The "peak::ipl" namespace contains the whole image processing library.
Definition peak_ipl_binning.hpp:23
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,...
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.
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.
#define PEAK_IPL_C_ABI_PREFIX
Definition peak_ipl_dll_defines.h:16
The Parameter for the JPEG writes, e.g. compression quality.
Definition peak_ipl_image_writer.hpp:56
JPEGParameter()
Definition peak_ipl_image_writer.hpp:57
uint32_t Quality
Definition peak_ipl_image_writer.hpp:61
The parameter for the PNG writes, e.g. compression quality.
Definition peak_ipl_image_writer.hpp:44
uint32_t Quality
Definition peak_ipl_image_writer.hpp:49
PNGParameter()
Definition peak_ipl_image_writer.hpp:45