SlideIO 2.0.0
Open-source library for reading of medical images
Loading...
Searching...
No Matches
tiffconverter.hpp
1// This file is part of slideio project.
2// It is subject to the license terms in the LICENSE file found in the top-level directory
3// of this distribution and at http://slideio.com/license.html.
4#include "slideio/converter/converter_def.hpp"
5#include "slideio/imagetools/tiffkeeper.hpp"
6#include "slideio/converter/converterparameters.hpp"
7#include "slideio/converter/tiffstructure.hpp"
8
9namespace slideio
10{
11 class CVScene;
12
13 namespace converter
14 {
15 class ConverterParameters;
16
17 class SLIDEIO_CONVERTER_EXPORTS TiffConverter
18 {
19 public:
20 void createFileLayout(const std::shared_ptr<CVScene>& scene, const ConverterParameters& parameters);
21 void createTiff(const std::string& filePath, const std::function<void(int)>& cb);
22 int getNumTiffPages() const {
23 return static_cast<int>(m_pages.size());
24 }
25
26 const TiffPageStructure& getTiffPage(int index) const;
27 Rect getSceneRect() const {
28 return m_cropRect;
29 }
30
31 int getTotalTiles() const {
32 return m_totalTiles;
33 }
34
35 const ConverterParameters& getParameters() const {
36 return m_parameters;
37 }
38 private:
39 TiffPageStructure& appendPage() {
40 return m_pages.emplace_back();
41 }
42 DataType getChannelRangeDataType(const Range& channelRange) const;
43 int computeChannelChunk(int firstChannel, const std::shared_ptr<CVScene>& scene) const;
44 std::string createSVSImageDescription() const;
45 std::string createImageDescriptionTag() const;
46 std::string createOMETiffDescription() const;
47 TiffDirectory setUpDirectory(const TiffDirectoryStructure& page);
48 void writeDirectoryData(TiffDirectory& dir, const TiffDirectoryStructure& page,
49 const std::function<void(int)>& cb);
50 void computeCropRect();
51 void makeSureValid() const;
52 static std::string SVSDateString();
53 static std::string SVSTimeString();
54 void checkSVSRequirements() const;
55 void checkJpegRequirements() const;
56 void checkEncodingRequirements() const;
57 void checkContainerRequirements() const;
58 void updateNotDefinedParameters();
59 private:
60 std::vector<TiffPageStructure> m_pages;
61 TIFFKeeperPtr m_file;
62 std::shared_ptr<CVScene> m_scene;
63 ConverterParameters m_parameters;
64 Rect m_cropRect;
65 std::string m_filePath;
66 int m_totalTiles = 0;
67 int m_currentTile = 0;
68 int m_lastProgress = 0;
69 };
70 }
71}
Definition: exceptions.hpp:15