OpenShot Library | libopenshot 0.3.3
Loading...
Searching...
No Matches
QtImageReader.h
Go to the documentation of this file.
1
9// Copyright (c) 2008-2019 OpenShot Studios, LLC
10//
11// SPDX-License-Identifier: LGPL-3.0-or-later
12
13#ifndef OPENSHOT_QIMAGE_READER_H
14#define OPENSHOT_QIMAGE_READER_H
15
16#include <memory>
17#include <string>
18
19#include <QString>
20#include <QSize>
21
22#include "ReaderBase.h"
23#include "Json.h"
24
25#if USE_RESVG == 1
26 // If defined and found in CMake, utilize the libresvg for parsing
27 // SVG files and rasterizing them to QImages.
28 #include "ResvgQt.h"
29
30 #define RESVG_VERSION_MIN(a, b) (\
31 RESVG_MAJOR_VERSION > a \
32 || (RESVG_MAJOR_VERSION == a && RESVG_MINOR_VERSION >= b) \
33 )
34#else
35 #define RESVG_VERSION_MIN(a, b) 0
36#endif
37
38class QImage;
39
40#include <QImage>
41#include <QSize>
42#include <QString>
43
44#include <QSize>
45#include <QString>
46
47class QImage;
48
49namespace openshot
50{
51 // Forward decl
52 class CacheBase;
53 class Frame;
54
75 {
76 private:
77 QString path;
78 std::shared_ptr<QImage> image;
79 std::shared_ptr<QImage> cached_image;
80 bool is_open;
81 QSize max_size;
82
83#if RESVG_VERSION_MIN(0, 11)
84 ResvgOptions resvg_options;
85#endif
86
91 QSize load_svg_path(QString path);
92
94 QSize calculate_max_size();
95
96 public:
105 QtImageReader(std::string path, bool inspect_reader=true);
106
107 virtual ~QtImageReader();
108
110 void Close() override;
111
113 CacheBase* GetCache() override { return NULL; };
114
120 std::shared_ptr<Frame> GetFrame(int64_t requested_frame) override;
121
123 bool IsOpen() override { return is_open; };
124
126 std::string Name() override { return "QtImageReader"; };
127
128 // Get and Set JSON methods
129 std::string Json() const override;
130 void SetJson(const std::string value) override;
131 Json::Value JsonValue() const override;
132 void SetJsonValue(const Json::Value root) override;
133
135 void Open() override;
136 };
137
138}
139
140#endif
Header file for JSON class.
Header file for ReaderBase class.
All cache managers in libopenshot are based on this CacheBase class.
Definition CacheBase.h:35
This class uses the Qt library, to open image files, and return openshot::Frame objects containing th...
std::string Name() override
Return the type name of the class.
Json::Value JsonValue() const override
Generate Json::Value for this object.
CacheBase * GetCache() override
Get the cache object used by this reader (always returns NULL for this object)
std::string Json() const override
Generate JSON string of this object.
void SetJsonValue(const Json::Value root) override
Load Json::Value into this object.
void Open() override
Open File - which is called by the constructor automatically.
void SetJson(const std::string value) override
Load JSON string into this object.
bool IsOpen() override
Determine if reader is open or closed.
void Close() override
Close File.
std::shared_ptr< Frame > GetFrame(int64_t requested_frame) override
This abstract class is the base class, used by all readers in libopenshot.
Definition ReaderBase.h:76
This namespace is the default namespace for all code in the openshot library.
Definition Compressor.h:29