OpenShot Library | libopenshot 1.1.1
Loading...
Searching...
No Matches
ColorGrade.h
Go to the documentation of this file.
1
9// Copyright (c) 2008-2026 OpenShot Studios, LLC
10//
11// SPDX-License-Identifier: LGPL-3.0-or-later
12
13#ifndef OPENSHOT_COLOR_GRADE_EFFECT_H
14#define OPENSHOT_COLOR_GRADE_EFFECT_H
15
16#include "../AnimatedCurve.h"
17#include "../EffectBase.h"
18#include "../Color.h"
19#include "../Frame.h"
20#include "../Json.h"
21#include "../KeyFrame.h"
22#include "ColorMap.h"
23
24#include <QColor>
25
26#include <array>
27#include <string>
28#include <utility>
29#include <vector>
30
31namespace openshot
32{
40
42 Json::Value JsonValue() const;
43 void SetJsonValue(const Json::Value& root);
44 QColor GetColor(int64_t frame_number) const;
45 float GetAmount(int64_t frame_number) const;
46 float GetLuma(int64_t frame_number) const;
47 };
48
58
60 Json::Value JsonValue() const;
61 void SetJsonValue(const Json::Value& root);
62 std::string Summary(int64_t frame_number) const;
63 bool IsEnabled(int64_t frame_number) const;
64 };
65
73 class ColorGrade : public EffectBase
74 {
75 private:
76 ColorMap lut_effect;
77 std::string lut_path;
78 bool lut_dirty;
79
80 void init_effect_details();
81 void sync_lut_effect();
82
83 static float Clamp01(float value);
84
85 public:
96
102
103 ColorGrade();
104
105 std::shared_ptr<openshot::Frame> GetFrame(int64_t frame_number) override {
106 return GetFrame(std::make_shared<openshot::Frame>(), frame_number);
107 }
108 std::shared_ptr<openshot::Frame> GetFrame(std::shared_ptr<openshot::Frame> frame, int64_t frame_number) override;
109
110 std::string Json() const override;
111 Json::Value JsonValue() const override;
112 void SetJson(const std::string value) override;
113 void SetJsonValue(const Json::Value root) override;
114 std::string PropertiesJSON(int64_t requested_frame) const override;
115 };
116}
117
118#endif
Header file for ColorMap (LUT) effect.
A unified beginner-friendly color grading effect.
Definition ColorGrade.h:74
AnimatedCurve curve_green
Definition ColorGrade.h:100
AnimatedCurve curve_blue
Definition ColorGrade.h:101
Json::Value JsonValue() const override
Generate Json::Value for this object.
void SetJson(const std::string value) override
Load JSON string into this object.
AnimatedCurve curve_red
Definition ColorGrade.h:99
AnimatedCurve curve_all
Definition ColorGrade.h:98
std::shared_ptr< openshot::Frame > GetFrame(int64_t frame_number) override
This method is required for all derived classes of ClipBase, and returns a new openshot::Frame object...
Definition ColorGrade.h:105
std::string Json() const override
Generate JSON string of this object.
std::string PropertiesJSON(int64_t requested_frame) const override
void SetJsonValue(const Json::Value root) override
Load Json::Value into this object.
ColorGradeWheelsData wheels
Definition ColorGrade.h:97
Applies a 1D or 3D LUT (.cube) color transform to each frame.
Definition ColorMap.h:36
This class represents a color (used on the timeline and clips)
Definition Color.h:27
This abstract class is the base class, used by all effects in libopenshot.
Definition EffectBase.h:57
A Keyframe is a collection of Point instances, which is used to vary a number or property over time.
Definition KeyFrame.h:53
This namespace is the default namespace for all code in the openshot library.
Wheel payload for a tonal region using native animated primitives.
Definition ColorGrade.h:36
QColor GetColor(int64_t frame_number) const
float GetLuma(int64_t frame_number) const
void SetJsonValue(const Json::Value &root)
float GetAmount(int64_t frame_number) const
Json::Value JsonValue() const
All wheel controls for ColorGrade.
Definition ColorGrade.h:52
std::string Summary(int64_t frame_number) const
ColorGradeWheelEntry highlights
Definition ColorGrade.h:57
ColorGradeWheelEntry global
Definition ColorGrade.h:54
bool IsEnabled(int64_t frame_number) const
void SetJsonValue(const Json::Value &root)
ColorGradeWheelEntry midtones
Definition ColorGrade.h:56
Json::Value JsonValue() const
ColorGradeWheelEntry shadows
Definition ColorGrade.h:55