72 lines
1.1 KiB
C
72 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
|