Scroom  0.14
tiffsource.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 <list>
11 #include <map>
12 #include <set>
13 #include <string>
14 
15 #include <tiffio.h>
16 
17 #include <scroom/colormappable.hh>
18 #include <scroom/observable.hh>
25 
26 namespace Scroom::Tiff
27 {
28  using TIFFPtr = boost::shared_ptr<TIFF>;
29 
30  using namespace Scroom::TiledBitmap;
31 
32  boost::optional<std::tuple<Scroom::TiledBitmap::BitmapMetaData, TIFFPtr>> open(const std::string& fileName);
33 
34  class Source : public SourcePresentation
35  {
36  private:
37  std::string fileName;
41 
42  public:
43  using Ptr = boost::shared_ptr<Source>;
44 
45  static Ptr create(std::string fileName, TIFFPtr tif, BitmapMetaData bmd);
46 
47  bool reset();
48 
49  // SourcePresenentation
50  void fillTiles(int startLine, int lineCount, int tileWidth, int firstTile, std::vector<Tile::Ptr>& tiles) override;
51  void done() override;
52  std::string getName() override { return fileName; }
53 
54  private:
55  Source(std::string fileName, TIFFPtr tif, BitmapMetaData bmd);
56  };
57 } // namespace Scroom::Tiff
Scroom::TiledBitmap::BitmapMetaData::samplesPerPixel
unsigned int samplesPerPixel
Definition: opentiledbitmapinterface.hh:45
Scroom::Tiff::getColorMap
Colormap::Ptr getColorMap(const TIFFPtr &tif, uint16_t bps)
Definition: tiffsource.cc:67
anonymous_namespace{tiffsource.cc}::TagInfo
std::pair< ttag_t, std::string > TagInfo
Definition: tiffsource.cc:16
TT
#define TT(x)
Definition: tiffsource.cc:61
Scroom::Tiff::Source::Source
Source(std::string fileName, TIFFPtr tif, BitmapMetaData bmd)
Definition: tiffsource.cc:229
Scroom::Tiff::getAspectRatio
boost::optional< Scroom::Utils::Point< double > > getAspectRatio(const TIFFPtr &tif)
Definition: tiffsource.cc:91
Scroom::Tiff::getColormapHelper
ColormapHelperBase::Ptr getColormapHelper(const TIFFPtr &tif, uint16_t bps)
Definition: tiffsource.cc:113
MonochromeColormapHelper::create
static Ptr create(int numberOfColors)
Definition: colormap-helpers.cc:72
presentationinterface.hh
Scroom::MemoryBlocks::RawPageData::Ptr
boost::shared_ptr< uint8_t > Ptr
Definition: blockallocator.hh:23
Scroom::Tiff::Source::bmd
BitmapMetaData bmd
Definition: tiffsource.hh:40
Scroom::TiledBitmap::Colormapped
const std::string Colormapped
Definition: layerspecforbitmap.cc:56
anonymous_namespace{tiffsource.cc}::TIFFCloseUnlessNull
void TIFFCloseUnlessNull(TIFF *tif)
Definition: tiffsource.cc:52
Colormap::create
static Colormap::Ptr create()
Definition: colormappable.hh:48
SourcePresentation::Ptr
boost::shared_ptr< SourcePresentation > Ptr
Definition: tiledbitmapinterface.hh:198
Scroom::Tiff::Source::fillTiles
void fillTiles(int startLine, int lineCount, int tileWidth, int firstTile, std::vector< Tile::Ptr > &tiles) override
Definition: tiffsource.cc:265
colormappable.hh
pipetteviewinterface.hh
observable.hh
tiffsource.hh
Scroom::TiledBitmap::BitmapMetaData
Definition: opentiledbitmapinterface.hh:41
Scroom::TiledBitmap::BitmapMetaData::bitsPerSample
unsigned int bitsPerSample
Definition: opentiledbitmapinterface.hh:44
ensure
#define ensure(expr)
Definition: assertions.hh:32
Scroom::TiledBitmap::BitmapMetaData::rect
Scroom::Utils::Rectangle< int > rect
Definition: opentiledbitmapinterface.hh:46
Scroom::Tiff::Source::create
static Ptr create(std::string fileName, TIFFPtr tif, BitmapMetaData bmd)
Definition: tiffsource.cc:224
anonymous_namespace{tiffsource.cc}::approx
bool approx(const BitmapMetaData &left, const BitmapMetaData &right)
Definition: tiffsource.cc:46
Scroom::Tiff::TIFFPtr
boost::shared_ptr< TIFF > TIFFPtr
Definition: tiffsource.hh:28
Scroom::Tiff::Source::fileName
std::string fileName
Definition: tiffsource.hh:37
Scroom::Tiff::Source
Definition: tiffsource.hh:34
Scroom::Tiff::Source::preOpenedTif
TIFFPtr preOpenedTif
Definition: tiffsource.hh:38
MonochromeColormapHelper::createInverted
static Ptr createInverted(int numberOfColors)
Definition: colormap-helpers.cc:77
opentiledbitmapinterface.hh
reset
bool reset()
Definition: test-helpers.cc:127
Colormap::Ptr
boost::shared_ptr< Colormap > Ptr
Definition: colormappable.hh:31
colormap
const Colormap::Ptr colormap
Definition: colormaphelpers_test.cc:54
Scroom::Tiff
Definition: tiffsource.cc:63
Scroom::TiledBitmap
Definition: opentiledbitmapinterface.hh:21
Scroom::TiledBitmap::to_string
std::string to_string(const BitmapMetaData &bmd)
Definition: layerspecforbitmap.cc:30
tiledbitmapinterface.hh
Scroom::Tiff::Source::Ptr
boost::shared_ptr< Source > Ptr
Definition: tiffsource.hh:43
anonymous_namespace{tiffsource.cc}::TIFFGetFieldCheckedOr
T TIFFGetFieldCheckedOr(const TIFFPtr &file, const TagInfo &tag, T default_value)
Definition: tiffsource.cc:34
ColormapHelperBase::Ptr
boost::shared_ptr< ColormapHelperBase > Ptr
Definition: colormappable.hh:160
Scroom::TiledBitmap::CMYK
const std::string CMYK
Definition: layerspecforbitmap.cc:54
SourcePresentation
Definition: tiledbitmapinterface.hh:195
Scroom::Tiff::Source::getName
std::string getName() override
Definition: tiffsource.hh:52
scroominterface.hh
Scroom::TiledBitmap::BitmapMetaData::colormapHelper
ColormapHelperBase::Ptr colormapHelper
Definition: opentiledbitmapinterface.hh:48
b
static void b(const B::Ptr &)
Definition: gtkhelper-tests.cc:32
ColormapHelper::create
static Ptr create(int numberOfColors)
Definition: colormap-helpers.cc:55
Scroom::Tiff::open
boost::optional< std::tuple< Scroom::TiledBitmap::BitmapMetaData, TIFFPtr > > open(const std::string &fileName)
Definition: tiffsource.cc:119
Scroom::Tiff::Source::reset
bool reset()
Definition: tiffsource.cc:236
transformpresentation.hh
Color
Definition: color.hh:34
create
void create(NewPresentationInterface *interface)
Definition: loader.cc:175
Scroom::Tiff::Source::done
void done() override
Definition: tiffsource.cc:299
Scroom::TiledBitmap::Greyscale
const std::string Greyscale
Definition: layerspecforbitmap.cc:55
Scroom::TiledBitmap::RGB
const std::string RGB
Definition: layerspecforbitmap.cc:53
anonymous_namespace{tiffsource.cc}::TIFFGetFieldChecked
T TIFFGetFieldChecked(const TIFFPtr &file, const TagInfo &tag)
Definition: tiffsource.cc:21
Scroom::Tiff::Source::tif
TIFFPtr tif
Definition: tiffsource.hh:39
Scroom::TiledBitmap::BitmapMetaData::type
std::string type
Definition: opentiledbitmapinterface.hh:43