File: scimgdataloader.h

package info (click to toggle)
scribus 1.4.4%2Bdfsg1-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 246,704 kB
  • ctags: 25,243
  • sloc: cpp: 272,543; xml: 15,558; ansic: 3,438; python: 3,427; makefile: 1,160; perl: 94; sh: 41
file content (69 lines) | stat: -rw-r--r-- 2,015 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
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_H
#define SCIMGDATALOADER_H

#include "scribusapi.h"
#include <QByteArray>
#include <QImage>
#include <QStringList>

#include "scimagestructs.h"
#include "rawimage.h"

class ScImgDataLoader
{
protected:
	ScImgDataLoader(void);

	QStringList m_supportedFormats;

	QImage m_image;
	ImageInfoRecord m_imageInfoRecord;
	QByteArray m_embeddedProfile;
	int m_profileComponents;

	typedef enum {
		noMsg = 0,
		warningMsg = 1,
		errorMsg = 2
	} MsgType;
	MsgType m_msgType;
	QString m_message;

	void swapRGBA(void);
	void swapRGBA(QImage *img);

	QString getPascalString(QDataStream & s);
	double decodePSDfloat(uint data);
	void parseRessourceData( QDataStream & s, const PSDHeader & header, uint size );

public:
	virtual ~ScImgDataLoader(void) {};

	const QStringList& supportedFormats(void) const { return m_supportedFormats; }
	bool  supportFormat(const QString& fmt);

	QImage& image(void) { return m_image; }
	RawImage r_image;
	QByteArray& embeddedProfile(void) { return m_embeddedProfile; }
	ImageInfoRecord& imageInfoRecord(void) { return m_imageInfoRecord; }
	void setRequest(bool valid, QMap<int, ImageLoadRequest> req);

	bool  issuedErrorMsg(void) const { return (m_msgType == errorMsg); }
	bool  issuedWarningMsg(void) const { return (m_msgType == warningMsg); }
	const QString& getMessage(void) const { return m_message; }

	virtual void initialize(void);

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

#endif