Enhance image type support (#18)

* adds tiff support

* doc update

* adds memory-based =IPixelariumImage= implementation

* add usage example for custom user control

* enhance

* clang-format

fix readme

fix docs
This commit is contained in:
m-aXimilian
2025-10-12 21:47:17 +02:00
committed by Maximilian Kueffner
parent 356f966d01
commit e3e161ce52
16 changed files with 385 additions and 15 deletions
+26
View File
@@ -0,0 +1,26 @@
#include "PixelariumMem.hpp"
#include <filesystem>
#include <memory>
#include <opencv2/imgcodecs.hpp>
#include <string>
pixelarium::imaging::PixelariumMem::PixelariumMem(const cv::Mat& img, const std::string& name, const Log& log)
: img_(img), log_(log), name_(name)
{
this->is_empty_ = false;
this->uri_ = std::filesystem::path();
}
std::unique_ptr<cv::Mat> pixelarium::imaging::PixelariumMem::TryGetImage()
{
// ToDo: this craving for a revision of the whole concept:
// the interface requires a unique_ptr here. This concept was designed to "create an in-memory image on demand" sort
// of.
// I.e., it only makes sense for the file types that do not already manage a cv::Mat in memory.
// PixelariumMem is meant for exactly this in-memory management of a cv::Mat though.
// So, returning a unique_ptr from it in the following semantic essentially calls the
// copy constructor of cv::Mat. This is potentially not "super bad", but at least it requires attention at some
// point.
return std::make_unique<cv::Mat>(this->img_);
}