71 lines
1.1 KiB
C++
71 lines
1.1 KiB
C++
|
|
|
|
#ifndef TTIO_JPG_INCLUDED
|
|
#define TTIO_JPG_INCLUDED
|
|
|
|
#include "tiio.h"
|
|
#include "tproperty.h"
|
|
|
|
extern "C" {
|
|
#define XMD_H
|
|
#include "jpeglib.h"
|
|
|
|
/*
|
|
* <setjmp.h> is used for the optional error recovery mechanism shown in
|
|
* the second part of the example.
|
|
*/
|
|
#include <setjmp.h>
|
|
}
|
|
|
|
#undef DVAPI
|
|
#ifdef TNZCORE_EXPORTS
|
|
#define DVAPI DV_EXPORT_API
|
|
#else
|
|
#define DVAPI DV_IMPORT_API
|
|
#endif
|
|
|
|
namespace Tiio
|
|
{
|
|
|
|
class DVAPI JpgReader : public Tiio::Reader
|
|
{
|
|
struct jpeg_decompress_struct m_cinfo;
|
|
struct jpeg_error_mgr m_jerr;
|
|
FILE *m_chan;
|
|
JSAMPARRAY m_buffer;
|
|
bool m_isOpen;
|
|
|
|
public:
|
|
JpgReader();
|
|
~JpgReader();
|
|
|
|
Tiio::RowOrder getRowOrder() const;
|
|
|
|
void open(FILE *file);
|
|
|
|
void readLine(char *buffer, int x0, int x1, int shrink);
|
|
int skipLines(int lineCount);
|
|
};
|
|
|
|
DVAPI Tiio::ReaderMaker makeJpgReader;
|
|
DVAPI Tiio::WriterMaker makeJpgWriter;
|
|
|
|
class DVAPI JpgWriterProperties : public TPropertyGroup
|
|
{
|
|
public:
|
|
TIntProperty m_quality;
|
|
TIntProperty m_smoothing;
|
|
|
|
static const string QUALITY;
|
|
|
|
JpgWriterProperties()
|
|
: m_quality(QUALITY, 0, 100, 90), m_smoothing("Smoothing", 0, 100, 0)
|
|
{
|
|
bind(m_quality);
|
|
bind(m_smoothing);
|
|
}
|
|
};
|
|
|
|
} // namespace
|
|
|
|
#endif
|