Initial commit

This commit is contained in:
2020-05-12 08:52:44 +02:00
commit 144a85b3be
11 changed files with 309 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
#ifndef JPEGIMAGE_H
#define JPEGIMAGE_H
#include <stdio.h> // jpeglib issue
#include <jpeglib.h>
#include <string>
#include <vector>
namespace Image {
class JpegImage
{
public:
JpegImage();
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 SourceMgr
{
struct jpeg_source_mgr pub;
const JOCTET *data;
size_t len;
};
typedef SourceMgr* SourceMgrPtr;
private:
static void InitSource(j_decompress_ptr pCinfo);
static boolean FillInputBuffer(j_decompress_ptr pCinfo);
static void SkipInputData(j_decompress_ptr pCinfo, long numBytes);
static void TermSource(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;
};
} // namespace Image
#endif // JPEGIMAGE_H