#include "PixelariumImageFactory.hpp" #include #include #include "IPixelariumImage.hpp" #include "PixelariumCzi.hpp" #include "PixelariumJpg.hpp" #include "PixelariumMem.hpp" #include "PixelariumPng.hpp" #include "PixelariumTiff.hpp" /*static*/ std::unique_ptr pixelarium::imaging::PixelariumImageFactory::CreateImage(const std::string& uri, const Log& log) { const auto res{std::filesystem::path(uri)}; const auto target_type{ExtensionToType(res.extension().string())}; switch (target_type) { case ImageFileType::kUnknown: return {}; case ImageFileType::kAbstract: return {}; case ImageFileType::kPng: return std::make_unique(uri); case ImageFileType::kJpg: return std::make_unique(uri); case ImageFileType::kCzi: return std::make_unique(uri, log); case ImageFileType::kTiff: return std::make_unique(uri, log); case ImageFileType::kMemory: return std::make_unique(cv::Mat(), uri, log); default: return {}; } }