5#include "slideio/imagetools/encodeparameters.hpp"
6#include "slideio/base/rect.hpp"
7#include "slideio/base/range.hpp"
8#include "slideio/base/slideio_enums.hpp"
9#include "slideio/converter/converter_def.hpp"
12#pragma warning( push )
13#pragma warning(disable: 4251)
45 class ContainerParameters
48 ContainerParameters(Container containerType) : m_containerType(containerType) {
50 virtual ~ContainerParameters() =
default;
53 Container getContainerType()
const {
54 return m_containerType;
58 Container m_containerType;
61 class TIFFContainerParameters :
public ContainerParameters
64 TIFFContainerParameters() : ContainerParameters(TIFF_CONTAINER),
70 ~TIFFContainerParameters()
override =
default;
72 int getTileWidth()
const {
76 void setTileWidth(
int tileWidth) {
77 m_tileWidth = tileWidth;
80 int getTileHeight()
const {
84 void setTileHeight(
int tileHeight) {
85 m_tileHeight = tileHeight;
88 int getNumZoomLevels()
const {
89 return m_numZoomLevels;
92 void setNumZoomLevels(
int numZoomLevels) {
93 m_numZoomLevels = numZoomLevels;
102 class SLIDEIO_CONVERTER_EXPORTS ConverterParameters
105 ConverterParameters(ImageFormat format, Container containerType, Compression compression);
107 ConverterParameters() {
111 ConverterParameters(
const ConverterParameters& other);
112 ConverterParameters& operator=(
const ConverterParameters& other);
114 virtual ~ConverterParameters() =
default;
116 ImageFormat getFormat()
const {
120 const Rect& getRect()
const {
124 void setRect(
const Rect& rect) {
128 void setSliceRange(
const Range& range) {
129 m_sliceRange = range;
132 const Range& getSliceRange()
const {
136 void setChannelRange(
const Range& range) {
137 m_channelRange = range;
140 const Range& getChannelRange()
const {
141 return m_channelRange;
144 void setTFrameRange(
const Range& range) {
145 m_frameRange = range;
148 const Range& getTFrameRange()
const {
154 Container getContainerType()
const;
156 std::shared_ptr<EncodeParameters> getEncodeParameters() {
157 return m_encodeParameters;
160 std::shared_ptr<const EncodeParameters> getEncodeParameters()
const {
161 return m_encodeParameters;
164 std::shared_ptr<ContainerParameters> getContainerParameters() {
165 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters);
168 std::shared_ptr<const ContainerParameters> getContainerParameters()
const {
169 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters);
172 bool isValid()
const {
173 return m_format != ImageFormat::Unknown && m_encodeParameters !=
nullptr && m_containerParameters !=
177 void updateNotDefinedParameters(
const std::shared_ptr<CVScene>& scene);
181 void copyFrom(
const ConverterParameters& other);
184 ImageFormat m_format;
187 Range m_channelRange;
189 std::shared_ptr<EncodeParameters> m_encodeParameters;
190 std::shared_ptr<ContainerParameters> m_containerParameters;
193 class SLIDEIO_CONVERTER_EXPORTS SVSConverterParameters :
public ConverterParameters
196 SVSConverterParameters(Compression compression)
197 : ConverterParameters(ImageFormat::SVS, Container::TIFF_CONTAINER, compression) {
200 ~SVSConverterParameters()
override =
default;
202 int getTileWidth()
const {
203 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getTileWidth();
206 void setTileWidth(
int tileWidth) {
207 std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setTileWidth(tileWidth);
210 int getTileHeight()
const {
211 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getTileHeight();
214 void setTileHeight(
int tileHeight) {
215 std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setTileHeight(tileHeight);
217 int getNumZoomLevels()
const {
218 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getNumZoomLevels();
221 void setNumZoomLevels(
int numZoomLevels) {
222 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setNumZoomLevels(numZoomLevels);
226 class SLIDEIO_CONVERTER_EXPORTS SVSJpegConverterParameters :
public SVSConverterParameters
229 SVSJpegConverterParameters()
233 ~SVSJpegConverterParameters()
override =
default;
235 void setQuality(
int q) {
236 std::static_pointer_cast<slideio::JpegEncodeParameters>(m_encodeParameters)->setQuality(q);
239 int getQuality()
const {
240 return std::static_pointer_cast<slideio::JpegEncodeParameters>(m_encodeParameters)->getQuality();
246 class SLIDEIO_CONVERTER_EXPORTS SVSJp2KConverterParameters :
public SVSConverterParameters
249 SVSJp2KConverterParameters()
253 ~SVSJp2KConverterParameters()
override =
default;
255 void setCompressionRate(
float rate) {
256 std::static_pointer_cast<slideio::JP2KEncodeParameters>(m_encodeParameters)->setCompressionRate(rate);
259 float getCompressionRate()
const {
260 return std::static_pointer_cast<slideio::JP2KEncodeParameters>(m_encodeParameters)->getCompressionRate();
264 class SLIDEIO_CONVERTER_EXPORTS OMETIFFConverterParameters :
public ConverterParameters
267 OMETIFFConverterParameters(Compression compression)
268 : ConverterParameters(ImageFormat::OME_TIFF, Container::TIFF_CONTAINER, compression) {
271 ~OMETIFFConverterParameters()
override =
default;
273 int getTileWidth()
const {
274 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getTileWidth();
277 void setTileWidth(
int tileWidth) {
278 std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setTileWidth(tileWidth);
281 int getTileHeight()
const {
282 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getTileHeight();
285 void setTileHeight(
int tileHeight) {
286 std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setTileHeight(tileHeight);
289 int getNumZoomLevels()
const {
290 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getNumZoomLevels();
293 void setNumZoomLevels(
int numZoomLevels) {
294 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setNumZoomLevels(numZoomLevels);
298 class SLIDEIO_CONVERTER_EXPORTS OMETIFFJpegConverterParameters :
public OMETIFFConverterParameters
301 OMETIFFJpegConverterParameters()
305 ~OMETIFFJpegConverterParameters()
override =
default;
307 void setQuality(
int q) {
308 std::static_pointer_cast<slideio::JpegEncodeParameters>(m_encodeParameters)->setQuality(q);
311 int getQuality()
const {
312 return std::static_pointer_cast<slideio::JpegEncodeParameters>(m_encodeParameters)->getQuality();
317 class SLIDEIO_CONVERTER_EXPORTS OMETIFFJp2KConverterParameters :
public OMETIFFConverterParameters
320 OMETIFFJp2KConverterParameters()
324 ~OMETIFFJp2KConverterParameters()
override =
default;
326 void setCompressionRate(
float rate) {
327 std::static_pointer_cast<slideio::JP2KEncodeParameters>(m_encodeParameters)->setCompressionRate(rate);
330 float getCompressionRate()
const {
331 return std::static_pointer_cast<slideio::JP2KEncodeParameters>(m_encodeParameters)->getCompressionRate();
338#pragma warning( pop )
Definition: exceptions.hpp:15
Compression
raster data compression enum
Definition: slideio_enums.hpp:12
@ Jpeg2000
JPEG 2000 compression.