SlideIO 2.0.0
Open-source library for reading of medical images
Loading...
Searching...
No Matches
converterparameters.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#pragma once
5#include "slideio/imagetools/encodeparameters.hpp"
6#include "slideio/base/rect.hpp"
7
8namespace slideio
9{
10 enum ImageFormat {
11 Unknown,
12 SVS
13 };
14
15 enum ConverterEncoding {
16 UNKNOWN_ENCODING,
17 JPEG,
18 JPEG2000
19
20 };
21
22
23 class ConverterParameters
24 {
25 protected:
26 ConverterParameters() : m_format(ImageFormat::Unknown), m_zSlice(0), m_tFrame(0) {
27 }
28 public:
29 virtual ~ConverterParameters() {}
30 ImageFormat getFormat() const {
31 return m_format;
32 }
33 Rect& getRect() {
34 return m_rect;
35 }
36 void setRect(const Rect& rect) {
37 m_rect = rect;
38 }
39 int32_t getZSlice() const {
40 return m_zSlice;
41 }
42 void setZSlice(int32_t zSlice) {
43 m_zSlice = zSlice;
44 }
45 int32_t getTFrame() const {
46 return m_tFrame;
47 }
48 void setTFrame(int32_t tFrame) {
49 m_tFrame = tFrame;
50 }
51 protected:
52 ImageFormat m_format;
53 Rect m_rect;
54 int32_t m_zSlice;
55 int32_t m_tFrame;
56 };
57
58 class SVSConverterParameters : public ConverterParameters
59 {
60 protected:
61 SVSConverterParameters() : m_tileWidth(256),
62 m_tileHeight(256),
63 m_numZoomLevels(-1),
64 m_tileEncoding(Compression::Unknown) {
65 m_format = ImageFormat::SVS;
66 }
67 public:
68 virtual ~SVSConverterParameters() = default;
69 Compression getEncoding() const {
70 return m_tileEncoding;
71 }
72 int getTileWidth() const {
73 return m_tileWidth;
74 }
75 void setTileWidth(int tileWidth) {
76 m_tileWidth = tileWidth;
77 }
78 int getTileHeight() const {
79 return m_tileHeight;
80 }
81 void setTileHeight(int tileHeight) {
82 m_tileHeight = tileHeight;
83 }
84 int getNumZoomLevels() const {
85 return m_numZoomLevels;
86 }
87 void setNumZoomLevels(int numZoomLevels) {
88 m_numZoomLevels = numZoomLevels;
89 }
90 virtual EncodeParameters& getEncodeParameters() = 0;
91 virtual const EncodeParameters& getEncodeParameters() const = 0;
92 protected:
93 Compression m_tileEncoding;
94 int m_tileWidth;
95 int m_tileHeight;
96 int m_numZoomLevels;
97 };
98
99 class SVSJpegConverterParameters : public SVSConverterParameters,
100 public JpegEncodeParameters
101 {
102 public:
103 SVSJpegConverterParameters(){
104 m_tileEncoding = Compression::Jpeg;
105 }
106 EncodeParameters& getEncodeParameters() override {
107 return static_cast<JpegEncodeParameters&>(*this);
108 }
109 const EncodeParameters& getEncodeParameters() const override {
110 return static_cast<const JpegEncodeParameters&>(*this);
111 }
112 };
113
114 class SVSJp2KConverterParameters : public SVSConverterParameters,
115 public JP2KEncodeParameters
116 {
117 public:
118 SVSJp2KConverterParameters() {
119 m_tileEncoding = Compression::Jpeg2000;
120 }
121 EncodeParameters& getEncodeParameters() override {
122 return static_cast<JP2KEncodeParameters&>(*this);
123 }
124 const EncodeParameters& getEncodeParameters() const override {
125 return static_cast<const JP2KEncodeParameters&>(*this);
126 }
127 };
128}
129
Definition: exceptions.hpp:15
Compression
raster data compression enum
Definition: slideio_enums.hpp:12
@ Jpeg
JPEG compression.
@ Jpeg2000
JPEG 2000 compression.