Fawkes API
Fawkes Development Version
|
#include <>>
Public Types | |
enum | CompressionDestination { COMP_DEST_FILE, COMP_DEST_MEM } |
Where to put the compressed image. More... | |
Public Member Functions | |
virtual | ~ImageCompressor () |
Virtual empty destructor. More... | |
virtual void | set_image_dimensions (unsigned int width, unsigned int height)=0 |
virtual void | set_image_buffer (colorspace_t cspace, unsigned char *buffer)=0 |
virtual void | set_destination_buffer (unsigned char *buf, unsigned int buf_size)=0 |
virtual size_t | compressed_size ()=0 |
virtual void | set_filename (const char *filename)=0 |
virtual void | set_compression_destination (CompressionDestination cd)=0 |
virtual bool | supports_compression_destination (CompressionDestination cd)=0 |
virtual size_t | recommended_compressed_buffer_size ()=0 |
virtual void | compress ()=0 |
virtual bool | supports_vflip ()=0 |
virtual void | set_vflip (bool enable)=0 |
Image compressor interface.
Definition at line 36 of file imagecompressor.h.
Where to put the compressed image.
Enumerator | |
---|---|
COMP_DEST_FILE | write compressed image to file |
COMP_DEST_MEM | write compressed image to buffer in memory |
Definition at line 45 of file imagecompressor.h.
|
virtual |
Virtual empty destructor.
Definition at line 96 of file imagecompressor.cpp.
|
pure virtual |
Compress image.
Implemented in firevision::JpegImageCompressor, firevision::JpegImageCompressorMMAL, and firevision::JpegImageCompressorLibJpeg.
Referenced by firevision::JpegImageCompressor::set_compression_destination().
|
pure virtual |
Get compressed size.
Implemented in firevision::JpegImageCompressor, firevision::JpegImageCompressorMMAL, and firevision::JpegImageCompressorLibJpeg.
Referenced by firevision::JpegImageCompressor::set_image_buffer().
|
pure 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.
Implemented in firevision::JpegImageCompressor, firevision::JpegImageCompressorMMAL, and firevision::JpegImageCompressorLibJpeg.
Referenced by firevision::JpegImageCompressor::supports_compression_destination().
|
pure virtual |
Set compression destination.
cd | compression destination |
Implemented in firevision::JpegImageCompressor, firevision::JpegImageCompressorMMAL, and firevision::JpegImageCompressorLibJpeg.
Referenced by firevision::JpegImageCompressor::compressed_size().
|
pure virtual |
Set destination buffer (if compressing to memory).
buf | buffer |
buf_size | buffer size |
Implemented in firevision::JpegImageCompressor, firevision::JpegImageCompressorMMAL, and firevision::JpegImageCompressorLibJpeg.
Referenced by firevision::JpegImageCompressor::set_image_dimensions().
|
pure virtual |
Set file name.
filename | file name (if compressing to file) |
Implemented in firevision::JpegImageCompressor, firevision::JpegImageCompressorMMAL, and firevision::JpegImageCompressorLibJpeg.
Referenced by firevision::JpegImageCompressor::set_destination_buffer(), and firevision::CompressedImageWriter::set_filename().
|
pure virtual |
Set image buffer to compress
cspace | colorspace of image |
buffer | buffer that contains the image |
Implemented in firevision::JpegImageCompressor, firevision::JpegImageCompressorMMAL, and firevision::JpegImageCompressorLibJpeg.
|
pure virtual |
Set dimensions of image to compress.
width | width of image in pixels |
height | height of image in pixels |
Implemented in firevision::JpegImageCompressor, firevision::JpegImageCompressorMMAL, and firevision::JpegImageCompressorLibJpeg.
|
pure virtual |
Enable or disable vflipping. This shall throw an exception if vflipping is not supported.
enable | true to enable vflipping, false to disable |
Exception | thrown if vflipping is not supported. |
Implemented in firevision::JpegImageCompressor, firevision::JpegImageCompressorMMAL, and firevision::JpegImageCompressorLibJpeg.
Referenced by firevision::JpegImageCompressor::recommended_compressed_buffer_size().
|
pure virtual |
Check if compressor supports desired compression destination.
cd | compression destination |
Implemented in firevision::JpegImageCompressor, firevision::JpegImageCompressorMMAL, and firevision::JpegImageCompressorLibJpeg.
Referenced by firevision::JpegImageCompressor::set_filename().
|
pure 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.
Implemented in firevision::JpegImageCompressor, firevision::JpegImageCompressorMMAL, and firevision::JpegImageCompressorLibJpeg.
Referenced by firevision::JpegImageCompressor::compress().