日期:2014-05-18  浏览次数:20911 次

怎样将一个类似10101100这样的字符串转为Color类型
我有一个已经处理好的字符串,它的形式是这样的

比如:字符串="110011101101001010110000"

它是24"位"的,就是说有24个字符
现在想将1-8位的"11001110"字符串,转化为数值型的数据,这样它的最大值是255

9-16位为一组,17-24位为一组,都按上面说的转成数值

最后,将这3个数值(刚好构成一个Color类型的变量),转化为可用的Color类型,SetPixel写入到一个bmp文件的指定像素

该怎样做呢?

会的高手帮帮我吧!拜谢了!

------解决方案--------------------
先取8位出来。string b8=“11001110”; 
Convert.ToInt32(b8, 10);
------解决方案--------------------
C# code

string str = "110011101101001010110000";
int rgb = 0;

for (i = 0; i < 24; i++)
{
    if (str[i] == '1') rgb |= 1;
    rgb <<= 1;
}

Color color = Color.FromArgb(rgb);

------解决方案--------------------
string s = "110011101101001010110000";
int r = Convert.ToInt32(s.Substring(0, 8),2);
int g = Convert.ToInt32(s.Substring(8, 8),2);
int b = Convert.ToInt32(s.Substring(16, 8),2);
Color c = Color.FromArgb(r, g, b);
------解决方案--------------------
C# code

            string now = "110011101101001010110000";
            Regex reg = new Regex(@"\d{8}");
            MatchCollection coll = reg.Matches(now);
            int Red = Convert.ToInt32(coll[0].Value,2);
            int Green = Convert.ToInt32(coll[1].Value,2);
            int Blue = Convert.ToInt32(coll[2].Value, 2);         
            Color color = Color.FromArgb(Red,Green , Blue);

------解决方案--------------------
C# code

            string str = "110011101101001010110000";
            int tmp = Convert.ToInt32(str, 2);
            int red = tmp >> 16;
            int green = tmp >> 8 & 255;
            int blue = tmp & 255;
            Color color = Color.FromArgb(red, green, blue);