Subversion Repositories Scribus

Rev

Rev 11468 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*
For general Scribus (>=1.3.2) copyright and licensing information please refer
to the COPYING file provided with the program. Following this notice may exist
a copyright and/or license notice that predates the release of Scribus 1.3.2
for which a new license (GPL+exception) is in place.
*/

#ifndef SCIMGDATALOADER_JPEG_H
#define SCIMGDATALOADER_JPEG_H

#include "scimgdataloader.h"

extern "C"
{
#define XMD_H           // shut JPEGlib up
#if defined(Q_OS_UNIXWARE)
#  define HAVE_BOOLEAN  // libjpeg under Unixware seems to need this
#endif
#include <jpeglib.h>
#include <jerror.h>
#undef HAVE_STDLIB_H
#ifdef const
#  undef const          // remove crazy C hackery in jconfig.h
#endif
}

class ScImgDataLoader_JPEG : public ScImgDataLoader
{
protected:

        void initSupportedFormatList();

        bool marker_is_icc (jpeg_saved_marker_ptr marker);
        bool marker_is_photoshop (jpeg_saved_marker_ptr marker);
        bool read_jpeg_marker (UINT8 requestmarker, j_decompress_ptr cinfo, JOCTET **icc_data_ptr, unsigned int *icc_data_len);

public:
        ScImgDataLoader_JPEG(void);

//      virtual void preloadAlphaChannel(const QString& fn, int res);
        virtual bool preloadAlphaChannel(const QString& fn, int page, int res, bool& hasAlpha);
        virtual void loadEmbeddedProfile(const QString& fn, int page = 0);
        virtual bool loadPicture(const QString& fn, int page, int res, bool thumbnail);
};

#endif