2012-01-17 7 views
1

제가문자열에서 색상 다시 변환하는 방법?

colorObj.ToString()

이어서 지금 색상 같이 A = 255, R = 255, G = 255, B = 128]

방법 저장 그대로 컬러 저장할 이 문자열을 다시 색상으로 변환 하시겠습니까?

정수 값에 RGB를 저장하여 이미 문제를 해결하고 있지만 그 값은 음수이며 누군가 코드에서 적용 할 때까지 아무런 의미가 없습니다. 이러한 [A = 255, R = 255, G = 255, B = 128] ARGB 값은 읽기 쉽습니다.

+0

. 현재 워드 프로세서는 16 진수 값이어야한다고 말하면서 현재 .NET4에서 "Color [Yellow]"라는 텍스트 문자열을보고 있습니다. 그리고 너는 다른 뭔가가있다. – winwaed

답변

0

너무 우아하지 않은 해결책은 문자열을 분할하고 필요한 값을 추출하는 것입니다. 다음과 같음 :

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)); 

더 좋은 방법이 있어야합니다. 이것이 가장 먼저 떠오르는 사항입니다.

4

색상을 HTML 값으로 저장하고로드 할 수 있습니다 (예 : #FFDFD991). 그런 다음 System.Drawing.ColorTranslator.ToHtml()System.Drawing.ColorTranslator.FromHtml()을 사용하십시오. 또한 this question을 참조하십시오.

0

먼저 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); 
1

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 
관련 문제