kDB: Knowledge DataBase
Loading...
Searching...
No Matches
Image.h
1#include <QSharedDataPointer>
2
3#include "Forward.h"
4
5namespace knowCore
6{
7 class Image
8 {
9 public:
10 enum class Type
11 {
12 UnsignedInteger8,
13 Integer8,
14 UnsignedInteger16,
15 Integer16,
16 UnsignedInteger32,
17 Integer32,
18 Float32,
19 Float64
20 };
21 enum class ColorSpace
22 {
23 Unknown,
24 RGB,
25 BGR
26 };
27 private:
28 Image(const QByteArray& _data, quint64 _width, quint64 _height, quint64 _channels, Type _type);
29 Image(const QByteArray& _data, quint64 _width, quint64 _height, ColorSpace _colorSpace,
30 Type _type);
31 public:
32 Image();
33 Image(quint64 _width, quint64 _height, quint64 _channels, Type _type);
34 Image(quint64 _width, quint64 _height, ColorSpace _colorSpace, Type _type);
35 Image(const Image& _rhs);
36 Image& operator=(const Image& _rhs);
37 ~Image();
38 QByteArray toArray() const;
39 quint8* dataPtr();
40 const quint8* dataPtr() const;
41 quint64 width() const;
42 quint64 height() const;
43 quint64 channels() const;
44 Type type() const;
45 Image convert(Type _type) const;
46 quint64 pixelSize() const;
50 quint64 size() const;
54 ColorSpace colorSpace() const;
58 QString encoding() const;
59 bool operator==(const Image& _rhs) const;
65 cres_qresult<QByteArray> compress(const QString& _compression,
66 const QHash<QString, QVariant>& _options) const;
67 static quint64 scalarSize(Type _type);
71 static cres_qresult<Image> createImage(quint64 _width, quint64 _height,
72 const QString& _encoding);
76 static cres_qresult<Image> fromRawData(const QByteArray& _data, quint64 _width, quint64 _height,
77 quint64 _channels, Type _type);
81 static cres_qresult<Image> fromRawData(const QByteArray& _data, quint64 _width, quint64 _height,
82 ColorSpace _colorSpace, Type _type);
86 static cres_qresult<Image> fromRawData(const QByteArray& _data, quint64 _width, quint64 _height,
87 const QString& _encoding);
91 static cres_qresult<Image> fromCompressedData(const QByteArray& _data,
92 const QString& _compression);
93 private:
94 struct Private;
95 QExplicitlySharedDataPointer<Private> d;
96 };
97} // namespace knowCore
98
99#include "Formatter.h"
100
101clog_format_declare_enum_formatter(knowCore::Image::Type, UnsignedInteger8, Integer8,
102 UnsignedInteger16, Integer16, UnsignedInteger32, Integer32,
103 Float32, Float64);
104
105#include "MetaType.h"
106KNOWCORE_DECLARE_FULL_METATYPE(knowCore, Image);
Definition Forward.h:10
Definition Image.h:8
static cres_qresult< Image > fromRawData(const QByteArray &_data, quint64 _width, quint64 _height, quint64 _channels, Type _type)
Definition Image.cpp:217
quint64 size() const
Definition Image.cpp:617
static cres_qresult< Image > fromCompressedData(const QByteArray &_data, const QString &_compression)
Definition Image.cpp:268
QString encoding() const
Definition Image.cpp:649
static cres_qresult< Image > createImage(quint64 _width, quint64 _height, const QString &_encoding)
Definition Image.cpp:205
ColorSpace colorSpace() const
Definition Image.cpp:619
cres_qresult< QByteArray > compress(const QString &_compression, const QHash< QString, QVariant > &_options) const
Definition Image.cpp:291
Definition Image.cpp:19