Files
AlarmServer/inputImage.h
T
2017-04-28 18:45:26 +02:00

51 lines
1.0 KiB
C++

#ifndef INPUTIMAGE_H
#define INPUTIMAGE_H
#include <string>
#include <vector>
#include <jpeglib.h>
class inputImage
{
public:
inputImage();
void setImageData(const std::string& data);
unsigned int width() const;
unsigned int height() const;
unsigned int strideX() const;
unsigned int strideY() const;
const std::vector<char>& data() const;
private:
struct source_mgr
{
struct jpeg_source_mgr pub;
const JOCTET *data;
size_t len;
};
typedef source_mgr* source_mgr_ptr;
private:
static void init_source(j_decompress_ptr pCinfo);
static boolean fill_input_buffer(j_decompress_ptr pCinfo);
static void skip_input_data(j_decompress_ptr pCinfo, long numBytes);
static void term_source(j_decompress_ptr pCinfo);
void setSourceMgr(j_decompress_ptr pCinfo, const char* pData, size_t len) const;
void decompressImage(const char* pData, size_t len);
private:
unsigned int m_width;
unsigned int m_height;
unsigned int m_strideX;
unsigned int m_strideY;
std::vector<char> m_data;
};
#endif // INPUTIMAGE_H