23#ifndef _TIFFCOMPRESSOR_H
24#define _TIFFCOMPRESSOR_H
27#include "Compressor.h"
53 unsigned int chunk_size;
63 void writeResolution();
66 void writeICCProfile();
69 void writeXMPMetadata();
72 void configure(
const RawTile& );
86 if( compression == 2 &&
Q > 9 )
Q = 9;
87 else if( compression == 5 &&
Q > 19 )
Q = 19;
97 if ( compression == 1 ) this->compression = COMPRESSION_LZW;
98 else if ( compression == 2 ) this->compression = COMPRESSION_ADOBE_DEFLATE;
99 else if ( compression == 3 ) this->compression = COMPRESSION_JPEG;
100 else if ( compression == 4 ) this->compression = COMPRESSION_WEBP;
101 else if ( compression == 5 ) this->compression = COMPRESSION_ZSTD;
102 else this->compression = COMPRESSION_NONE;
118 if( compression == COMPRESSION_ADOBE_DEFLATE ) max = 9;
119 else if( compression == COMPRESSION_ZSTD ) max = 19;
124 else if(
Q > max )
Q = max;
144 unsigned int CompressStrip(
unsigned char* source,
unsigned char* output,
unsigned int tile_height );
152 unsigned int Finish(
unsigned char* output );
179 if ( code == 1 ) name =
"LZW";
180 else if( code == 2 ) name =
"Deflate";
181 else if( code == 3 ) name =
"JPEG";
182 else if( code == 4 ) name =
"WebP";
183 else if( code == 5 ) name =
"ZSTD";
Base class for IIP output images.
Definition Compressor.h:31
bool default_quality
Whether compression level is default or has been set manually.
Definition Compressor.h:39
int Q
Quality or compression level for all image types.
Definition Compressor.h:36
Class to represent a single image tile.
Definition RawTile.h:45
TIFF encoder class.
Definition TIFFCompressor.h:45
unsigned int Compress(RawTile &t)
Compress an entire buffer of image data at once in one command.
Definition TIFFCompressor.cc:255
void setQuality(int quality)
Set the compression level.
Definition TIFFCompressor.h:109
const char * getMimeType() const
Return the TIFF mime type.
Definition TIFFCompressor.h:163
void setCompression(int compression)
Set compression type: 0: None, 1: LZW, 2: Deflate, 3: JPEG, 4: WebP, 5: ZStandard.
Definition TIFFCompressor.h:95
unsigned int Finish(unsigned char *output)
Finish the strip based compression and free memory.
Definition TIFFCompressor.cc:237
unsigned int CompressStrip(unsigned char *source, unsigned char *output, unsigned int tile_height)
Compress a strip of image data.
Definition TIFFCompressor.cc:216
static std::string getCompressionName(int code)
Static utility function to get compression in human-readable form.
Definition TIFFCompressor.h:176
TIFFCompressor(int compression, int quality)
Constructor.
Definition TIFFCompressor.h:81
const char * getSuffix() const
Return the image filename suffix.
Definition TIFFCompressor.h:166
void InitCompression(const RawTile &rawtile, unsigned int strip_height)
Initialize strip based compression.
Definition TIFFCompressor.cc:149
ImageEncoding getImageEncoding() const
Get compression type.
Definition TIFFCompressor.h:169
Structure to handle memory-based TIFF writing.
Definition TIFFCompressor.h:33
toff_t end
Last written byte.
Definition TIFFCompressor.h:36
unsigned char * buffer
Data buffer.
Definition TIFFCompressor.h:34
toff_t current
Current byte position within stream.
Definition TIFFCompressor.h:35
toff_t capacity
Allocated buffer size.
Definition TIFFCompressor.h:37