Fawkes API  Fawkes Development Version
firevision::JpegImageCompressorLibJpeg Class Reference

#include <>>

Inheritance diagram for firevision::JpegImageCompressorLibJpeg:

Public Member Functions

 JpegImageCompressorLibJpeg (unsigned int quality=80, JpegImageCompressor::JpegColorspace jcs=JpegImageCompressor::JPEG_CS_RGB)
 Constructor. More...
 
virtual ~JpegImageCompressorLibJpeg ()
 Destructor. More...
 
virtual void set_image_dimensions (unsigned int width, unsigned int height)
 
virtual void set_image_buffer (colorspace_t cspace, unsigned char *buffer)
 
virtual void set_destination_buffer (unsigned char *buf, unsigned int buf_size)
 
virtual size_t compressed_size ()
 
virtual void set_filename (const char *filename)
 
virtual void set_compression_destination (ImageCompressor::CompressionDestination cd)
 
virtual bool supports_compression_destination (ImageCompressor::CompressionDestination cd)
 
virtual void compress ()
 
virtual size_t recommended_compressed_buffer_size ()
 
virtual bool supports_vflip ()
 
virtual void set_vflip (bool enable)
 
- Public Member Functions inherited from firevision::ImageCompressor
virtual ~ImageCompressor ()
 Virtual empty destructor. More...
 

Additional Inherited Members

- Public Types inherited from firevision::ImageCompressor
enum  CompressionDestination { COMP_DEST_FILE, COMP_DEST_MEM }
 Where to put the compressed image. More...
 

Detailed Description

Jpeg image compressor.

Definition at line 41 of file jpeg_compressor_libjpeg.h.

Constructor & Destructor Documentation

◆ JpegImageCompressorLibJpeg()

firevision::JpegImageCompressorLibJpeg::JpegImageCompressorLibJpeg ( unsigned int  quality = 80,
JpegImageCompressor::JpegColorspace  jcs = JpegImageCompressor::JPEG_CS_RGB 
)

Constructor.

Parameters
qualityJPEG quality in percent
jcsJpeg colorspace

Definition at line 205 of file jpeg_compressor_libjpeg.cpp.

◆ ~JpegImageCompressorLibJpeg()

firevision::JpegImageCompressorLibJpeg::~JpegImageCompressorLibJpeg ( )
virtual

Destructor.

Definition at line 213 of file jpeg_compressor_libjpeg.cpp.

Member Function Documentation

◆ compress()

void firevision::JpegImageCompressorLibJpeg::compress ( )
virtual

Compress image.

Implements firevision::ImageCompressor.

Definition at line 230 of file jpeg_compressor_libjpeg.cpp.

◆ compressed_size()

size_t firevision::JpegImageCompressorLibJpeg::compressed_size ( )
virtual

Get compressed size.

Returns
compressed size

Implements firevision::ImageCompressor.

Definition at line 382 of file jpeg_compressor_libjpeg.cpp.

◆ recommended_compressed_buffer_size()

size_t firevision::JpegImageCompressorLibJpeg::recommended_compressed_buffer_size ( )
virtual

Get the recommended size for the compressed buffer. It is not guaranteed that this size is really enough for compression but in most cases this should be suitable.

Returns
recommended buffer size

Implements firevision::ImageCompressor.

Definition at line 388 of file jpeg_compressor_libjpeg.cpp.

◆ set_compression_destination()

void firevision::JpegImageCompressorLibJpeg::set_compression_destination ( ImageCompressor::CompressionDestination  cd)
virtual

Set compression destination.

Parameters
cdcompression destination

Implements firevision::ImageCompressor.

Definition at line 362 of file jpeg_compressor_libjpeg.cpp.

◆ set_destination_buffer()

void firevision::JpegImageCompressorLibJpeg::set_destination_buffer ( unsigned char *  buf,
unsigned int  buf_size 
)
virtual

Set destination buffer (if compressing to memory).

Parameters
bufbuffer
buf_sizebuffer size

Implements firevision::ImageCompressor.

Definition at line 375 of file jpeg_compressor_libjpeg.cpp.

◆ set_filename()

void firevision::JpegImageCompressorLibJpeg::set_filename ( const char *  filename)
virtual

Set file name.

Parameters
filenamefile name (if compressing to file)

Implements firevision::ImageCompressor.

Definition at line 394 of file jpeg_compressor_libjpeg.cpp.

◆ set_image_buffer()

void firevision::JpegImageCompressorLibJpeg::set_image_buffer ( colorspace_t  cspace,
unsigned char *  buffer 
)
virtual

Set image buffer to compress

Parameters
cspacecolorspace of image
bufferbuffer that contains the image

Implements firevision::ImageCompressor.

Definition at line 354 of file jpeg_compressor_libjpeg.cpp.

◆ set_image_dimensions()

void firevision::JpegImageCompressorLibJpeg::set_image_dimensions ( unsigned int  width,
unsigned int  height 
)
virtual

Set dimensions of image to compress.

Parameters
widthwidth of image in pixels
heightheight of image in pixels

Implements firevision::ImageCompressor.

Definition at line 347 of file jpeg_compressor_libjpeg.cpp.

◆ set_vflip()

void firevision::JpegImageCompressorLibJpeg::set_vflip ( bool  enable)
virtual

Enable or disable vflipping. This shall throw an exception if vflipping is not supported.

Parameters
enabletrue to enable vflipping, false to disable
Exceptions
Exceptionthrown if vflipping is not supported.

Implements firevision::ImageCompressor.

Definition at line 224 of file jpeg_compressor_libjpeg.cpp.

◆ supports_compression_destination()

bool firevision::JpegImageCompressorLibJpeg::supports_compression_destination ( ImageCompressor::CompressionDestination  cd)
virtual

Check if compressor supports desired compression destination.

Parameters
cdcompression destination
Returns
true if supported, false otherwise

Implements firevision::ImageCompressor.

Definition at line 368 of file jpeg_compressor_libjpeg.cpp.

◆ supports_vflip()

bool firevision::JpegImageCompressorLibJpeg::supports_vflip ( )
virtual

Check if image compressor can do vflip during compress.

Vertical flipping (having the image upside down) is an operation necessary for example for cameras hanging upside down. During compression when the buffer is typically copied or converted line-wise anyway, this is a particularly cheap operation. Therfore we provide an API to implement this.

Returns
true, if the image compressor supports vflipping, false otherwise.

Implements firevision::ImageCompressor.

Definition at line 218 of file jpeg_compressor_libjpeg.cpp.


The documentation for this class was generated from the following files: