/** * @file * @brief Header file for Color class * @author Jonathan Thomas * * @ref License */ // Copyright (c) 2008-2019 OpenShot Studios, LLC // // SPDX-License-Identifier: LGPL-3.0-or-later #ifndef OPENSHOT_COLOR_H #define OPENSHOT_COLOR_H #include "KeyFrame.h" #include namespace openshot { /** * @brief This class represents a color (used on the timeline and clips) * * Colors are represented by 4 curves, representing red, green, blue, and alpha. The curves * can be used to animate colors over time. */ class Color{ public: openshot::Keyframe red; /// GetColorRGBA(int64_t frame_number); /// Get the distance between 2 RGB pairs. (0=identical colors, 10=very close colors, 760=very different colors) static long GetDistance(long R1, long G1, long B1, long R2, long G2, long B2); // Get and Set JSON methods std::string Json() const; ///< Generate JSON string of this object Json::Value JsonValue() const; ///< Generate Json::Value for this object void SetJson(const std::string value); ///< Load JSON string into this object void SetJsonValue(const Json::Value root); ///< Load Json::Value into this object }; } // namespace openshot #endif