colorObj.ToString()
이어서 지금 색상 같이 A = 255, R = 255, G = 255, B = 128]
방법 저장 그대로 컬러 저장할 이 문자열을 다시 색상으로 변환 하시겠습니까?
정수 값에 RGB를 저장하여 이미 문제를 해결하고 있지만 그 값은 음수이며 누군가 코드에서 적용 할 때까지 아무런 의미가 없습니다. 이러한 [A = 255, R = 255, G = 255, B = 128] ARGB 값은 읽기 쉽습니다.
colorObj.ToString()
이어서 지금 색상 같이 A = 255, R = 255, G = 255, B = 128]
방법 저장 그대로 컬러 저장할 이 문자열을 다시 색상으로 변환 하시겠습니까?
정수 값에 RGB를 저장하여 이미 문제를 해결하고 있지만 그 값은 음수이며 누군가 코드에서 적용 할 때까지 아무런 의미가 없습니다. 이러한 [A = 255, R = 255, G = 255, B = 128] ARGB 값은 읽기 쉽습니다.
너무 우아하지 않은 해결책은 문자열을 분할하고 필요한 값을 추출하는 것입니다. 다음과 같음 :
var p = test.Split(new char[]{',',']'});
int A = Convert.ToInt32(p[0].Substring(p[0].IndexOf('=') + 1));
int R = Convert.ToInt32(p[1].Substring(p[1].IndexOf('=') + 1));
int G = Convert.ToInt32(p[2].Substring(p[2].IndexOf('=') + 1));
int B = Convert.ToInt32(p[3].Substring(p[3].IndexOf('=') + 1));
더 좋은 방법이 있어야합니다. 이것이 가장 먼저 떠오르는 사항입니다.
색상을 HTML 값으로 저장하고로드 할 수 있습니다 (예 : #FFDFD991
). 그런 다음 System.Drawing.ColorTranslator.ToHtml()
및 System.Drawing.ColorTranslator.FromHtml()
을 사용하십시오. 또한 this question을 참조하십시오.
먼저 ColorTranslator.ToWin32 (컬러 win32Color)를 통해 에서 INT 다음 (INT 다음 문자열, 하고 그냥 ColorTranslator.FromWin32를 통해 다시 컬러로 지능과 그 INT로 다시 변환하는 것이 변환하는 색 변환하면 컬러 win32Color)
//
Color CColor = Color.FromArgb(255, 20, 200, 100);
int IColor;
String SString;
//from color to string
IColor = ColorTranslator.ToWin32(CColor);
SString = IColor.ToString();
//from string to color
IColor = int.Parse(SString);
CColor = ColorTranslator.FromWin32(IColor);
Jontata의 대답을 벗어 놓으면서 내가 생각해 낸 것입니다.
그리기 라이브러리가 필요하지 않으므로 Unity 사용자에게 좋은 해결책입니다. 난 그냥 변환 쉽게 내 자신의 ToString 함수를 만들고있어.
기능 :
public static string colorToString(Color color){
return color.r + "," + color.g + "," + color.b + "," + color.a;
}
public static Color stringToColor(string colorString){
try{
string[] colors = colorString.Split (',');
return new Color (float.Parse(colors [0]), float.Parse(colors [1]), float.Parse(colors [2]), float.Parse(colors [3]));
}catch{
return Color.white;
}
}
사용법 : Color.ToString()는 .NET의 버전에 따라 다른 값을 반환 나타납니다
Color red = new Color(1,0,0,1);
string redStr = colorToString(red);
Color convertedColor = stringToColor(redStr); //convertedColor will be red
. 현재 워드 프로세서는 16 진수 값이어야한다고 말하면서 현재 .NET4에서 "Color [Yellow]"라는 텍스트 문자열을보고 있습니다. 그리고 너는 다른 뭔가가있다. – winwaed