22#ifndef _JPEGCOMPRESSOR_H
23#define _JPEGCOMPRESSOR_H
26#include "Compressor.h"
31#define snprintf _snprintf
47 struct jpeg_destination_mgr pub;
64 unsigned int width, height, channels;
67 struct jpeg_compress_struct cinfo;
68 struct jpeg_error_mgr jerr;
73 void writeResolution();
76 void writeICCProfile();
79 void writeXMPMetadata();
82 void writeExifMetadata();
101 if( factor < 0 )
Q = 0;
102 else if( factor > 100 )
Q = 100;
122 unsigned int CompressStrip(
unsigned char* s,
unsigned char* o,
unsigned int tile_height );
128 unsigned int Finish(
unsigned char* output );
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
Wrapper class to the IJG JPEG library.
Definition JPEGCompressor.h:59
JPEGCompressor(int quality)
Constructor.
Definition JPEGCompressor.h:89
void InitCompression(const RawTile &rawtile, unsigned int strip_height)
Initialise strip based compression.
Definition JPEGCompressor.cc:153
const char * getMimeType() const
Return the JPEG mime type.
Definition JPEGCompressor.h:135
unsigned int Compress(RawTile &t)
Compress an entire buffer of image data at once in one command.
Definition JPEGCompressor.cc:308
void setQuality(int factor)
Set the compression quality.
Definition JPEGCompressor.h:96
unsigned int CompressStrip(unsigned char *s, unsigned char *o, unsigned int tile_height)
Compress a strip of image data.
Definition JPEGCompressor.cc:247
ImageEncoding getImageEncoding() const
Get compression type.
Definition JPEGCompressor.h:141
unsigned int Finish(unsigned char *output)
Finish the strip based compression and free memory.
Definition JPEGCompressor.cc:282
void injectMetadata(RawTile &r)
Inject metadata into raw JPEG bitstream.
Definition JPEGCompressor.cc:548
const char * getSuffix() const
Return the image filename suffix.
Definition JPEGCompressor.h:138
Class to represent a single image tile.
Definition RawTile.h:45
Expanded data destination object for buffered output used by IJG JPEG library.
Definition JPEGCompressor.h:45
size_t source_size
size of output buffer
Definition JPEGCompressor.h:50
unsigned char * source
output data buffer pointer
Definition JPEGCompressor.h:49
size_t written
number of bytes written to buffer
Definition JPEGCompressor.h:51
unsigned int strip_height
used for stream-based encoding
Definition JPEGCompressor.h:52