knowL: Knowledge Libraries
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, Integer8,
13 UnsignedInteger16, Integer16,
14 UnsignedInteger32, Integer32,
15 Float32, Float64
16 };
17 enum class ColorSpace
18 {
19 Unknown, RGB, BGR
20 };
21 private:
22 Image(const QByteArray& _data, quint64 _width, quint64 _height, quint64 _channels, Type _type);
23 Image(const QByteArray& _data, quint64 _width, quint64 _height, ColorSpace _colorSpace, Type _type);
24 public:
25 Image();
26 Image(quint64 _width, quint64 _height, quint64 _channels, Type _type);
27 Image(quint64 _width, quint64 _height, ColorSpace _colorSpace, Type _type);
28 Image(const Image& _rhs);
29 Image& operator=(const Image& _rhs);
30 ~Image();
31 QByteArray toArray() const;
32 quint8* dataPtr();
33 const quint8* dataPtr() const;
34 quint64 width() const;
35 quint64 height() const;
36 quint64 channels() const;
37 Type type() const;
38 Image convert(Type _type) const;
39 quint64 pixelSize() const;
43 quint64 size() const;
47 ColorSpace colorSpace() const;
51 QString encoding() const;
52 bool operator==(const Image& _rhs) const;
58 knowCore::ReturnValue<QByteArray> compress(const QString& _compression, const QHash<QString, QVariant>& _options) const;
59 static quint64 scalarSize(Type _type);
63 static knowCore::ReturnValue<Image> createImage(quint64 _width, quint64 _height, const QString& _encoding);
67 static knowCore::ReturnValue<Image> fromRawData(const QByteArray& _data, quint64 _width, quint64 _height, quint64 _channels, Type _type);
71 static knowCore::ReturnValue<Image> fromRawData(const QByteArray& _data, quint64 _width, quint64 _height, ColorSpace _colorSpace, Type _type);
75 static knowCore::ReturnValue<Image> fromRawData(const QByteArray& _data, quint64 _width, quint64 _height, const QString& _encoding);
79 static knowCore::ReturnValue<Image> fromCompressedData(const QByteArray& _data, const QString& _compression);
80 private:
81 struct Private;
82 QExplicitlySharedDataPointer<Private> d;
83 };
84}
85
86#include "Formatter.h"
87
88KNOWCORE_CORE_DECLARE_FORMATTER_ENUM(knowCore::Image::Type, UnsignedInteger8, Integer8, UnsignedInteger16, Integer16, UnsignedInteger32, Integer32, Float32, Float64)
89
90#include "MetaType.h"
91KNOWCORE_DECLARE_FULL_METATYPE(knowCore, Image)
Definition Forward.h:8
Definition Image.h:8
static knowCore::ReturnValue< Image > fromRawData(const QByteArray &_data, quint64 _width, quint64 _height, quint64 _channels, Type _type)
Definition Image.cpp:217
quint64 size() const
Definition Image.cpp:609
knowCore::ReturnValue< QByteArray > compress(const QString &_compression, const QHash< QString, QVariant > &_options) const
Definition Image.cpp:274
QString encoding() const
Definition Image.cpp:647
ColorSpace colorSpace() const
Definition Image.cpp:614
static knowCore::ReturnValue< Image > createImage(quint64 _width, quint64 _height, const QString &_encoding)
Definition Image.cpp:205
static knowCore::ReturnValue< Image > fromCompressedData(const QByteArray &_data, const QString &_compression)
Definition Image.cpp:256
Definition ReturnValue.h:29
Definition Image.cpp:22