7#include "Misc/DefaultValueHelper.h"
19 FColor Color = FColor::FromHex(HexString);
20 return Color.ReinterpretAsLinear();
26 return FLinearColor::White;
57 TArray<FString> Components;
58 ColorString.ParseIntoArray(Components, TEXT(
","),
true);
60 int32 R = 0, G = 0, B = 0, A = 255;
63 FDefaultValueHelper::ParseInt(Components[0], R);
64 FDefaultValueHelper::ParseInt(Components[1], G);
65 FDefaultValueHelper::ParseInt(Components[2], B);
67 if (Components.Num() == 4)
69 FDefaultValueHelper::ParseInt(Components[3], A);
73 return FLinearColor(R / 255.0f, G / 255.0f, B / 255.0f, A / 255.0f);
81 return FLinearColor::White;
86 FColor ConvertedColor = Color.QuantizeRound();
87 FString HexString = ConvertedColor.ToHex();
91 HexString = HexString.Left(6);
96 HexString = FString(
"#") + HexString;
118 int32 R = FMath::RoundToInt(Color.R * 255);
119 int32 G = FMath::RoundToInt(Color.G * 255);
120 int32 B = FMath::RoundToInt(Color.B * 255);
121 int32 A = FMath::RoundToInt(Color.A * 255);
125 return FString::Printf(TEXT(
"%d,%d,%d,%d"), R, G, B, A);
129 return FString::Printf(TEXT(
"%d,%d,%d"), R, G, B);
135 FString TrimmedString = ColorString.TrimStartAndEnd();
136 TArray<FString> Components;
137 TrimmedString.ParseIntoArray(Components, TEXT(
","),
true);
140 if (Components.Num() < 3 || Components.Num() > 4)
145 for (
const FString& Component : Components)
148 if (!FDefaultValueHelper::ParseInt(Component, Value) || Value < 0 || Value > 255)
159 FString TrimmedString = ColorString.TrimStartAndEnd().Replace(TEXT(
"#"), TEXT(
""));
162 if (TrimmedString.Len() != 6 && TrimmedString.Len() != 8)
168 for (TCHAR Char : TrimmedString)
170 if (!FChar::IsHexDigit(Char))
181 FString TrimmedString = ColorString.TrimStartAndEnd();
182 FLinearColor ConvertedColor;
194 return ConvertedColor;
static bool IsValidRGBString(const FString &ColorString)
static FLinearColor HexToLinearColor(const FString &HexString, bool &bSuccess)
Converts a hex color code (e.g. "#FF00FF" or "#FF00FFAA" or "FF00FF" or "FF00FFAA) to an FLinearColor...
static FString LinearColorToHex(const FLinearColor &Color, bool bIncludeAlpha, bool bAddPrefix)
static FLinearColor RGBStringToLinearColor(const FString &ColorString, bool &bSuccess)
Converts a comma-separated color string ("r,g,b" or "r,g,b,a") to an FLinearColor.
static FLinearColor AutoDetectColorStringToLinearColor(const FString &ColorString, bool &bSuccess)
Tries to auto detect format for color string, and convert it to linear color accordingly.
static bool IsValidHexString(const FString &ColorString)
static FString LinearColorToRGBString(const FLinearColor &Color, bool bIncludeAlpha)