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),
68 m_numReadingThreads(0),
69 m_numEncodingThreads(0) {
72 ~TIFFContainerParameters()
override =
default;
74 int getTileWidth()
const {
78 void setTileWidth(
int tileWidth) {
79 m_tileWidth = tileWidth;
82 int getTileHeight()
const {
86 void setTileHeight(
int tileHeight) {
87 m_tileHeight = tileHeight;
90 int getNumZoomLevels()
const {
91 return m_numZoomLevels;
94 void setNumZoomLevels(
int numZoomLevels) {
95 m_numZoomLevels = numZoomLevels;
98 int getNumReadingThreads()
const {
99 return m_numReadingThreads;
102 void setNumReadingThreads(
int numReadingThreads) {
103 m_numReadingThreads = numReadingThreads;
106 int getNumEncodingThreads()
const {
107 return m_numEncodingThreads;
110 void setNumEncodingThreads(
int numEncodingThreads) {
111 m_numEncodingThreads = numEncodingThreads;
118 int m_numReadingThreads;
119 int m_numEncodingThreads;
122 class SLIDEIO_CONVERTER_EXPORTS ConverterParameters
125 ConverterParameters(ImageFormat format, Container containerType, Compression compression);
127 ConverterParameters() {
131 ConverterParameters(
const ConverterParameters& other);
132 ConverterParameters& operator=(
const ConverterParameters& other);
134 virtual ~ConverterParameters() =
default;
136 ImageFormat getFormat()
const {
140 const Rect& getRect()
const {
144 void setRect(
const Rect& rect) {
148 void setSliceRange(
const Range& range) {
149 m_sliceRange = range;
152 const Range& getSliceRange()
const {
156 void setChannelRange(
const Range& range) {
157 m_channelRange = range;
160 const Range& getChannelRange()
const {
161 return m_channelRange;
164 void setTFrameRange(
const Range& range) {
165 m_frameRange = range;
168 const Range& getTFrameRange()
const {
174 Container getContainerType()
const;
176 std::shared_ptr<EncodeParameters> getEncodeParameters() {
177 return m_encodeParameters;
180 std::shared_ptr<const EncodeParameters> getEncodeParameters()
const {
181 return m_encodeParameters;
184 std::shared_ptr<ContainerParameters> getContainerParameters() {
185 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters);
188 std::shared_ptr<const ContainerParameters> getContainerParameters()
const {
189 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters);
192 bool isValid()
const {
193 return m_format != ImageFormat::Unknown && m_encodeParameters !=
nullptr && m_containerParameters !=
197 int getTileBatchSize()
const {
198 return m_tileBatchSize;
201 void setTileBatchSize(
int batchSize) {
202 m_tileBatchSize = batchSize;
205 void updateNotDefinedParameters(
const std::shared_ptr<CVScene>& scene);
209 void copyFrom(
const ConverterParameters& other);
212 ImageFormat m_format;
215 Range m_channelRange;
218 std::shared_ptr<EncodeParameters> m_encodeParameters;
219 std::shared_ptr<ContainerParameters> m_containerParameters;
222 class SLIDEIO_CONVERTER_EXPORTS SVSConverterParameters :
public ConverterParameters
225 SVSConverterParameters(Compression compression)
226 : ConverterParameters(ImageFormat::SVS, Container::TIFF_CONTAINER, compression) {
229 ~SVSConverterParameters()
override =
default;
231 int getTileWidth()
const {
232 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getTileWidth();
235 void setTileWidth(
int tileWidth) {
236 std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setTileWidth(tileWidth);
239 int getTileHeight()
const {
240 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getTileHeight();
243 void setTileHeight(
int tileHeight) {
244 std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setTileHeight(tileHeight);
246 int getNumZoomLevels()
const {
247 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getNumZoomLevels();
250 void setNumZoomLevels(
int numZoomLevels) {
251 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setNumZoomLevels(numZoomLevels);
254 int getNumReadingThreads()
const {
255 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getNumReadingThreads();
258 void setNumReadingThreads(
int numReadingThreads) {
259 std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setNumReadingThreads(numReadingThreads);
262 int getNumEncodingThreads()
const {
263 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getNumEncodingThreads();
266 void setNumEncodingThreads(
int numEncodingThreads) {
267 std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setNumEncodingThreads(numEncodingThreads);
271 class SLIDEIO_CONVERTER_EXPORTS SVSJpegConverterParameters :
public SVSConverterParameters
274 SVSJpegConverterParameters()
278 ~SVSJpegConverterParameters()
override =
default;
280 void setQuality(
int q) {
281 std::static_pointer_cast<slideio::JpegEncodeParameters>(m_encodeParameters)->setQuality(q);
284 int getQuality()
const {
285 return std::static_pointer_cast<slideio::JpegEncodeParameters>(m_encodeParameters)->getQuality();
291 class SLIDEIO_CONVERTER_EXPORTS SVSJp2KConverterParameters :
public SVSConverterParameters
294 SVSJp2KConverterParameters()
298 ~SVSJp2KConverterParameters()
override =
default;
300 void setCompressionRate(
float rate) {
301 std::static_pointer_cast<slideio::JP2KEncodeParameters>(m_encodeParameters)->setCompressionRate(rate);
304 float getCompressionRate()
const {
305 return std::static_pointer_cast<slideio::JP2KEncodeParameters>(m_encodeParameters)->getCompressionRate();
309 class SLIDEIO_CONVERTER_EXPORTS OMETIFFConverterParameters :
public ConverterParameters
312 OMETIFFConverterParameters(Compression compression)
313 : ConverterParameters(ImageFormat::OME_TIFF, Container::TIFF_CONTAINER, compression) {
316 ~OMETIFFConverterParameters()
override =
default;
318 int getTileWidth()
const {
319 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getTileWidth();
322 void setTileWidth(
int tileWidth) {
323 std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setTileWidth(tileWidth);
326 int getTileHeight()
const {
327 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getTileHeight();
330 void setTileHeight(
int tileHeight) {
331 std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setTileHeight(tileHeight);
334 int getNumZoomLevels()
const {
335 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getNumZoomLevels();
338 void setNumZoomLevels(
int numZoomLevels) {
339 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setNumZoomLevels(numZoomLevels);
342 int getNumReadingThreads()
const {
343 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getNumReadingThreads();
346 void setNumReadingThreads(
int numReadingThreads) {
347 std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setNumReadingThreads(numReadingThreads);
350 int getNumEncodingThreads()
const {
351 return std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->getNumEncodingThreads();
354 void setNumEncodingThreads(
int numEncodingThreads) {
355 std::static_pointer_cast<TIFFContainerParameters>(m_containerParameters)->setNumEncodingThreads(numEncodingThreads);
359 class SLIDEIO_CONVERTER_EXPORTS OMETIFFJpegConverterParameters :
public OMETIFFConverterParameters
362 OMETIFFJpegConverterParameters()
366 ~OMETIFFJpegConverterParameters()
override =
default;
368 void setQuality(
int q) {
369 std::static_pointer_cast<slideio::JpegEncodeParameters>(m_encodeParameters)->setQuality(q);
372 int getQuality()
const {
373 return std::static_pointer_cast<slideio::JpegEncodeParameters>(m_encodeParameters)->getQuality();
378 class SLIDEIO_CONVERTER_EXPORTS OMETIFFJp2KConverterParameters :
public OMETIFFConverterParameters
381 OMETIFFJp2KConverterParameters()
385 ~OMETIFFJp2KConverterParameters()
override =
default;
387 void setCompressionRate(
float rate) {
388 std::static_pointer_cast<slideio::JP2KEncodeParameters>(m_encodeParameters)->setCompressionRate(rate);
391 float getCompressionRate()
const {
392 return std::static_pointer_cast<slideio::JP2KEncodeParameters>(m_encodeParameters)->getCompressionRate();
399#pragma warning( pop )
Definition: exceptions.hpp:15
Compression
raster data compression enum
Definition: slideio_enums.hpp:12
@ Jpeg2000
JPEG 2000 compression.