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:
committed by
Maximilian Kueffner
parent
356f966d01
commit
e3e161ce52
@@ -3,6 +3,7 @@
|
||||
#include <format>
|
||||
#include <memory>
|
||||
|
||||
#include "imaging/IPixelariumImage.hpp"
|
||||
#include "imaging/PixelariumImageFactory.hpp"
|
||||
#include "rendering/IPixelariumImageView.hpp"
|
||||
#include "rendering/PixelariumImageViewCzi.hpp"
|
||||
@@ -15,6 +16,7 @@
|
||||
std::unique_ptr<pixelarium::render::IPixelariumImageView> pixelarium::render::ImageViewFactory::RenderImage(
|
||||
resources::ResourceKey image_id)
|
||||
{
|
||||
using ImageType = imaging::ImageFileType;
|
||||
auto res{this->image_pool_.GetResource(image_id)};
|
||||
|
||||
auto img{res.lock()};
|
||||
@@ -30,18 +32,24 @@ std::unique_ptr<pixelarium::render::IPixelariumImageView> pixelarium::render::Im
|
||||
}
|
||||
|
||||
auto type = imaging::ExtensionToType(img->Uri().extension().string());
|
||||
if (img->Uri().empty())
|
||||
{
|
||||
log_.Info(std::format("{}: empty Uri for {}.", __PRETTY_FUNCTION__, img->Name()));
|
||||
type = ImageType::kMemory;
|
||||
}
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case imaging::ImageFileType::kUnknown:
|
||||
case imaging::ImageFileType::kAbstract:
|
||||
return {};
|
||||
case imaging::ImageFileType::kPng:
|
||||
case imaging::ImageFileType::kJpg:
|
||||
case ImageType::kUnknown:
|
||||
case ImageType::kAbstract:
|
||||
case ImageType::kPng:
|
||||
case ImageType::kJpg:
|
||||
case ImageType::kTiff:
|
||||
case ImageType::kMemory:
|
||||
log_.Info(std::format("{}: Creating a Default View", __PRETTY_FUNCTION__));
|
||||
// beware: here we copy the actual image resource over to the new image
|
||||
return std::make_unique<PixelariumImageViewDefault>(img);
|
||||
case imaging::ImageFileType::kCzi:
|
||||
case ImageType::kCzi:
|
||||
log_.Info(std::format("{}: Creating a CZI View", __PRETTY_FUNCTION__));
|
||||
// beware: here we copy the actual image resource over to the new image
|
||||
return std::make_unique<PixelariumImageViewCzi>(img, log_);
|
||||
|
||||
Reference in New Issue
Block a user