2011-03-29 16 views

उत्तर

6
int red = 255; 
int green = 255; 
int blue = 255; 

string theHexColor = "#" + red.ToString("X2") + green.ToString("X2") + blue.ToString("X2"); 
+0

अल्फा मूल्य के बारे में क्या? – Stecya

+1

आपके प्रारूप पर निर्भर करता है: यानी एआरजीबी बस आपके अल्फा को डालने वाला होगा। टॉस्ट्रिंग ("एक्स") लाल, आदि के सामने। बड़ा मुद्दा यह है कि ToString ("X") विधि हेक्स प्रारूप में एक पूर्णांक मान लौटाएगी। – Tejs

+3

आपके उदाहरण की तुलना में 'स्ट्रिंग रंग = स्ट्रिंग। फोर्मेट ("# {0: एक्स} {1: एक्स} {2: एक्स}", आर, जी, बी) लिखने के लिए बेहतर है; ' – Stecya

6

इस

string s = Color.FromArgb(255, 143, 143, 143).Name; 
+0

मैं बस का कहना है कि करना चाहते हैं 0 के बीच एक स्विच प्रदर्शन करते हैं। जब नाम Argb से रंग नहीं बनाया जाता है तो नाम संपत्ति हेक्स मान नहीं देगी। (जैसे Color.Red.Name "लाल" मान वापस करेगा) – HABJAN

+0

हाँ, मुझे पता है लेकिन सिकमेश ने कहा कि वह आरजीबी मूल्यों से स्ट्रिंग प्राप्त करना चाहता है – Stecya

+0

उन्होंने कहा कि वह "हेक्सा मूल्य" चाहता था। –

3

आरजीबी प्रयास करें कर सकते हैं हेक्स के लिए:

string hexColor = string.Format("0x{0:X8}", Color.FromArgb(r, g, b).ToArgb()); 

हेक्स आरजीबी के लिए:

int rgbColor = int.Parse("FF", System.Globalization.NumberStyles.AllowHexSpecifier); 
+1

त्रुटि देता है: 'System.Windows.Media.Color' 'ToArgb' की परिभाषा नहीं है और 'SystemAindgb' प्रकार के पहले तर्क को स्वीकार करने के लिए 'ToArgb' कोई एक्सटेंशन विधि नहीं मिल सकती है (क्या आप एक निर्देश या एक असेंबली संदर्भ का उपयोग कर रहे हैं?) – saikamesh

1

निम्न एक्सटेंशन विधि प्राप्त करें:

public static class ColorExtensions 
{ 
    public static string ToRgb(this int argb) 
    { 
     var r = ((argb >> 16) & 0xff); 
     var g = ((argb >> 8) & 0xff); 
     var b = (argb & 0xff); 

     return string.Format("{0:X2}{1:X2}{2:X2}", r, g, b); 
    } 
} 

और यहां आप उपयोग कर रहे हैं:

 int colorBlack = 0x000000; 
     int colorWhite = 0xffffff; 

     Assert.That(colorBlack.ToRgb(), Is.EqualTo("000000")); 
     Assert.That(colorWhite.ToRgb(), Is.EqualTo("FFFFFF")); 
0

कोई PowerPoint आकार वस्तु के Fill.ForeColor.RGB सदस्य के लिए इस मुद्दे का समाधान करना, मुझे लगता है आरजीबी मूल्य वास्तव में बीजीआर (नीला, हरा, लाल) हैं, इसलिए सी # पावरपॉइंट एडिन के लिए समाधान, एक स्ट्रिंग में Fill.ForeColor.RGB को कनवर्ट करना है:

string strColor = ""; 
var b = ((shpTemp.Fill.ForeColor.RGB >> 16) & 0xff); 
var g = ((shpTemp.Fill.ForeColor.RGB >> 8) & 0xff); 
var r = (shpTemp.Fill.ForeColor.RGB & 0xff); 

strColor = string.Format("{0:X2}{1:X2}{2:X2}", r, g, b); 
-1

मैं क्या निम्नलिखित था:

int reducedRed = getRed(long color)/128; // this gives you a number 1 or 0. 
    int reducedGreen = getGreen(long color)/128; // same thing for the green value; 
    int reducedBlue = getBlue(long color)/128; //same thing for blue 
    int reducedColor = reducedBlue + reducedGreen*2 + reducedRed*4 ; 
    // reduced Color is a number between 0 -7 

एक बार जब आप है reducedColor तो करने के लिए 7.

switch(reducedColor){ 
     case 0: return "000000";  // corresponds to Black 
     case 1: return “0000FF";   // corresponds to Blue 
     case 2: return "00FF00";  // corresponds to Green 
     case 3: return "00FFFF";  // corresponds to Cyan 
     case 4: return “FF0000";   // corresponds to Red 
     case 5: return "FF00FF";  //corresponds to Purple 
     case 6: return "FFFF00";  //corresponds to Yellow 
     case 7: return “FFFFFF";  //corresponds to White 
    } 

हे

संबंधित मुद्दे

 संबंधित मुद्दे