Scroom  0.14
opentiledbitmapinterface.hh
Go to the documentation of this file.
1 /*
2  * Scroom - Generic viewer for 2D data
3  * Copyright (C) 2009-2022 Kees-Jan Dijkzeul
4  *
5  * SPDX-License-Identifier: LGPL-2.1
6  */
7 
8 #pragma once
9 
10 #include <boost/shared_ptr.hpp>
11 
12 #include <gtk/gtk.h>
13 
14 #include <scroom/colormappable.hh>
15 #include <scroom/interface.hh>
16 #include <scroom/point.hh>
17 #include <scroom/rectangle.hh>
18 #include <scroom/showmetadata.hh>
20 
22 {
40 
42  {
43  std::string type;
44  unsigned int bitsPerSample;
45  unsigned int samplesPerPixel;
47  boost::optional<Scroom::Utils::Point<double>> aspectRatio;
49  };
50 
51  std::ostream& to_stream(std::ostream& os, const BitmapMetaData& bmd);
52  std::string to_string(const BitmapMetaData& bmd);
54 
56  {
57  public:
58  using Ptr = boost::shared_ptr<OpenTiledBitmapInterface>;
59 
60  public:
61  virtual std::list<GtkFileFilter*> getFilters() = 0;
62 
63  virtual std::tuple<BitmapMetaData, Layer::Ptr, ReloadFunction> open(const std::string& fileName) = 0;
64  };
65 
67 
69 
70  extern const std::string RGB;
71  extern const std::string CMYK;
72  extern const std::string Greyscale;
73  extern const std::string Colormapped;
74 
75  using LayerSpecResult = std::tuple<LayerSpec, ColormapHelperBase::Ptr>;
76  using LayerSpecForBitmapFunc = std::function<LayerSpecResult(const BitmapMetaData& bitmapMetaData)>;
77 
78  LayerSpecResult LayerSpecForBitmap(const BitmapMetaData& bitmapMetaData);
79 
81  scheduleLoadingBitmap(const SourcePresentation::Ptr& sp, const Layer::Ptr& layer, const ProgressInterface::Ptr& progress);
82 
83 } // namespace Scroom::TiledBitmap
OpenPresentationInterface::Ptr
boost::shared_ptr< OpenPresentationInterface > Ptr
Definition: scroominterface.hh:56
Scroom::TiledBitmap::BitmapMetaData::samplesPerPixel
unsigned int samplesPerPixel
Definition: opentiledbitmapinterface.hh:45
Layer::Ptr
boost::shared_ptr< Layer > Ptr
Definition: tiledbitmaplayer.hh:247
Scroom::TiledBitmap::scheduleLoadingBitmap
Scroom::Utils::Stuff scheduleLoadingBitmap(const SourcePresentation::Ptr &sp, const Layer::Ptr &layer, const ProgressInterface::Ptr &progress)
Definition: tiled-bitmap.cc:33
point.hh
Scroom::TiledBitmap::LayerSpecForBitmap
LayerSpecResult LayerSpecForBitmap(const BitmapMetaData &bitmapMetaData)
Definition: layerspecforbitmap.cc:228
Scroom::TiledBitmap::LayerSpecForBitmapFunc
std::function< LayerSpecResult(const BitmapMetaData &bitmapMetaData)> LayerSpecForBitmapFunc
Definition: opentiledbitmapinterface.hh:76
Scroom::TiledBitmap::LayerSpecResult
std::tuple< LayerSpec, ColormapHelperBase::Ptr > LayerSpecResult
Definition: opentiledbitmapinterface.hh:75
showmetadata.hh
Scroom::TiledBitmap::Colormapped
const std::string Colormapped
Definition: layerspecforbitmap.cc:56
Scroom::TiledBitmap::ToOpenPresentationInterface
OpenPresentationInterface::Ptr ToOpenPresentationInterface(OpenTiledBitmapInterface::Ptr openTiledBitmapInterface)
Definition: tiledbitmappresentation.cc:424
ProgressInterface::Ptr
boost::shared_ptr< ProgressInterface > Ptr
Definition: progressinterface.hh:20
SourcePresentation::Ptr
boost::shared_ptr< SourcePresentation > Ptr
Definition: tiledbitmapinterface.hh:198
colormappable.hh
Scroom::TiledBitmap::to_metadata
Metadata::Metadata to_metadata(const BitmapMetaData &bmd)
Definition: layerspecforbitmap.cc:37
Scroom::TiledBitmap::BitmapMetaData
Definition: opentiledbitmapinterface.hh:41
Scroom::TiledBitmap::BitmapMetaData::bitsPerSample
unsigned int bitsPerSample
Definition: opentiledbitmapinterface.hh:44
Scroom::TiledBitmap::BitmapMetaData::rect
Scroom::Utils::Rectangle< int > rect
Definition: opentiledbitmapinterface.hh:46
Scroom::TiledBitmap::ReloadFunction
std::function< Scroom::Utils::Stuff(const ProgressInterface::Ptr &)> ReloadFunction
Definition: opentiledbitmapinterface.hh:39
Scroom::TiledBitmap::OpenTiledBitmapInterface::open
virtual std::tuple< BitmapMetaData, Layer::Ptr, ReloadFunction > open(const std::string &fileName)=0
Scroom::TiledBitmap::OpenTiledBitmapInterface::Ptr
boost::shared_ptr< OpenTiledBitmapInterface > Ptr
Definition: opentiledbitmapinterface.hh:58
Scroom::TiledBitmap::OpenTiledBitmapInterface::getFilters
virtual std::list< GtkFileFilter * > getFilters()=0
Scroom::TiledBitmap::BitmapMetaData::aspectRatio
boost::optional< Scroom::Utils::Point< double > > aspectRatio
Definition: opentiledbitmapinterface.hh:47
Scroom::TiledBitmap
Definition: opentiledbitmapinterface.hh:21
Scroom::TiledBitmap::to_string
std::string to_string(const BitmapMetaData &bmd)
Definition: layerspecforbitmap.cc:30
tiledbitmaplayer.hh
ColormapHelperBase::Ptr
boost::shared_ptr< ColormapHelperBase > Ptr
Definition: colormappable.hh:160
Scroom::TiledBitmap::CMYK
const std::string CMYK
Definition: layerspecforbitmap.cc:54
Scroom::Utils::Stuff
boost::shared_ptr< void > Stuff
Definition: stuff.hh:18
Scroom::TiledBitmap::BitmapMetaData::colormapHelper
ColormapHelperBase::Ptr colormapHelper
Definition: opentiledbitmapinterface.hh:48
Interface
Definition: interface.hh:10
Scroom::Metadata::Metadata
std::vector< std::pair< std::string, std::string > > Metadata
Definition: showmetadata.hh:15
Scroom::Utils::Rectangle< int >
Scroom::TiledBitmap::to_stream
std::ostream & to_stream(std::ostream &os, const BitmapMetaData &bmd)
Definition: layerspecforbitmap.cc:22
interface.hh
rectangle.hh
Scroom::TiledBitmap::Greyscale
const std::string Greyscale
Definition: layerspecforbitmap.cc:55
Scroom::TiledBitmap::RGB
const std::string RGB
Definition: layerspecforbitmap.cc:53
Scroom::TiledBitmap::OpenTiledBitmapInterface
Definition: opentiledbitmapinterface.hh:55
Scroom::TiledBitmap::BitmapMetaData::type
std::string type
Definition: opentiledbitmapinterface.hh:43