1 /*
2 For general Scribus (>=1.3.2) copyright and licensing information please refer
3 to the COPYING file provided with the program. Following this notice may exist
4 a copyright and/or license notice that predates the release of Scribus 1.3.2
5 for which a new license (GPL+exception) is in place.
6 */
7 #ifndef SCIMGDATALOADER_TIFF_H
8 #define SCIMGDATALOADER_TIFF_H
9 
10 #include <tiffio.h>
11 #include "scimgdataloader.h"
12 //Added by qt3to4:
13 #include <QList>
14 
15 class ScImgDataLoader_TIFF : public ScImgDataLoader
16 {
17 protected:
18 
19 	enum PSDColorMode
20 	{
21 		CM_BITMAP = 0,
22 		CM_GRAYSCALE = 1,
23 		CM_INDEXED = 2,
24 		CM_RGB = 3,
25 		CM_CMYK = 4,
26 		CM_MULTICHANNEL = 7,
27 		CM_DUOTONE = 8,
28 		CM_LABCOLOR = 9
29 	};
30 	void initSupportedFormatList();
31 	int  getLayers(const QString& fn, int page);
32 	bool getImageData(TIFF* tif, RawImage *image, uint widtht, uint heightt, uint size, uint16 m_photometric, uint16 bitspersample, uint16 m_samplesperpixel, bool &bilevel, bool &isCMYK);
33 	bool getImageData_RGBA(TIFF* tif, RawImage *image, uint widtht, uint heightt, uint size, uint16 bitspersample, uint16 m_samplesperpixel);
34 	void blendOntoTarget(RawImage *tmp, int layOpa, const QString& layBlend, bool cmyk, bool useMask);
35 	QString getLayerString(QDataStream & s);
36 	bool loadChannel( QDataStream & s, const PSDHeader & header, QList<PSDLayer> &layerInfo, uint layer, int channel, int component, RawImage &tmpImg);
37 	bool loadLayerInfo(QDataStream & s, QList<PSDLayer> &layerInfo);
38 	bool loadLayerChannels( QDataStream & s, const PSDHeader & header, QList<PSDLayer> &layerInfo, uint layer, bool* firstLayer);
39 
40 	bool testAlphaChannelAvailability(const QString& fn, int page, bool& hasAlpha);
41 	void unmultiplyRGBA(RawImage *image);
42 
43 	int    m_random_table[4096];
44 	uint16 m_photometric, m_samplesperpixel;
45 
46 public:
47 	ScImgDataLoader_TIFF();
48 
49 //	virtual void preloadAlphaChannel(const QString& fn, int res);
50 	virtual bool preloadAlphaChannel(const QString& fn, int page, int res, bool& hasAlpha);
51 	virtual void loadEmbeddedProfile(const QString& fn, int page = 0);
52 	virtual bool loadPicture(const QString& fn, int page, int res, bool thumbnail);
53 
useRawImage()54 	virtual bool useRawImage() { return true; }
55 };
56 
57 #endif
58