81818在线手机版官方下载 4

干细胞移植之前的预处理治疗是一大挑战81818在线手机版官方下载,CMY是3种印刷油墨名称的首字母

81818在线手机版官方下载 1

那次印刷的邮票还包括4c Magenta及4c Blue邮票,而该枚1c
Magenta是其中硕果仅存的邮票。由于它的罕有程度,故此被称集邮界的圣杯。

Magenta公司专注改善干细胞移植,其干细胞移植项目,已募集资金达9850万美元,受到谷歌等着名投资者的青睐,并与诺华公司建立了授权合作关系,同时吸引到了辉瑞前高管、药物研发专家John
Davis博士加入任职首席医学官。

【C#】RGB,CMYK,HSB各种颜色表示的转换

 

一、表示颜色的方式有很多种,如RGB,CMYK,HSB,Hex等等

  1、RGB:这种表示颜色由三原色构成,通过红,绿,蓝三种颜色分量的不同,组合成不同的颜色,例如,100%红+100%绿混合可以得到黄色,红绿蓝三种颜色叠加可以得到白色,基本上屏幕显示色彩都采用这种方式

81818在线手机版官方下载 2

  2、CMYK:也称作印刷色彩模式,是一种依靠反光的色彩模式,主要用于印刷,和RGB类似,CMY是3种印刷油墨名称的首字母:青色Cyan、品红色Magenta、黄色Yellow。而K取的是black最后一个字母,之所以不取首字母,是为了避免与蓝色(Blue)混淆。从理论上来说,只需要CMY三种油墨就足够了,它们三个加在一起就应该得到黑色。但是由于目前制造工艺还不能造出高纯度的油墨,CMY相加的结果实际是一种暗红色。

81818在线手机版官方下载 3

 

  3、HSB:通过色相(hues),饱和度(saturation),亮度(brightness)来表示颜色

81818在线手机版官方下载 4

 

 

二、下面说说关于各种颜色之间的转换

  1、RGB与CMYK之间的转换

81818在线手机版官方下载 5

        public static void RGB2CMYK(int red, int green, int blue, out double c, out double m, out double y, out double k)
        {
            c = (double)(255 - red) / 255;
            m = (double)(255 - green) / 255;
            y = (double)(255 - blue) / 255;

            k = (double)Math.Min(c, Math.Min(m, y));
            if (k == 1.0)
            {
                c = m = y = 0;
            }
            else
            {
                c = (c - k) / (1 - k);
                m = (m - k) / (1 - k);
                y = (y - k) / (1 - k);
            }
        }
        public static void CMYK2RGB(double c, double m, double y, double k, out int r, out int g, out int b)
        {
            r = Convert.ToInt32((1.0 - c) * (1.0 - k) * 255.0);
            g = Convert.ToInt32((1.0 - m) * (1.0 - k) * 255.0);
            b = Convert.ToInt32((1.0 - y) * (1.0 - k) * 255.0);
        }

81818在线手机版官方下载 6

  2、RGB与HSB之间的转换

81818在线手机版官方下载 7

        public static void RGB2HSB(int red, int green, int blue, out double hue, out double sat, out double bri)
        {
            double r = ((double)red / 255.0);
            double g = ((double)green / 255.0);
            double b = ((double)blue / 255.0);

            double max = Math.Max(r, Math.Max(g, b));
            double min = Math.Min(r, Math.Min(g, b));

            hue = 0.0;
            if (max == r && g >= b)
            {
                if (max - min == 0) hue = 0.0;
                else hue = 60 * (g - b) / (max - min);
            }
            else if (max == r && g < b)
            {
                hue = 60 * (g - b) / (max - min) + 360;
            }
            else if (max == g)
            {
                hue = 60 * (b - r) / (max - min) + 120;
            }
            else if (max == b)
            {
                hue = 60 * (r - g) / (max - min) + 240;
            }

            sat = (max == 0) ? 0.0 : (1.0 - ((double)min / (double)max));
            bri = max;
        }
        public static void HSB2RGB(double hue, double sat, double bri, out int red, out int green ,out int blue)
        {
            double r = 0;
            double g = 0;
            double b = 0;

            if (sat == 0)
            {
                r = g = b = bri;
            }
            else
            {
                // the color wheel consists of 6 sectors. Figure out which sector you're in.
                double sectorPos = hue / 60.0;
                int sectorNumber = (int)(Math.Floor(sectorPos));
                // get the fractional part of the sector
                double fractionalSector = sectorPos - sectorNumber;

                // calculate values for the three axes of the color. 
                double p = bri * (1.0 - sat);
                double q = bri * (1.0 - (sat * fractionalSector));
                double t = bri * (1.0 - (sat * (1 - fractionalSector)));

                // assign the fractional colors to r, g, and b based on the sector the angle is in.
                switch (sectorNumber)
                {
                    case 0:
                        r = bri;
                        g = t;
                        b = p;
                        break;
                    case 1:
                        r = q;
                        g = bri;
                        b = p;
                        break;
                    case 2:
                        r = p;
                        g = bri;
                        b = t;
                        break;
                    case 3:
                        r = p;
                        g = q;
                        b = bri;
                        break;
                    case 4:
                        r = t;
                        g = p;
                        b = bri;
                        break;
                    case 5:
                        r = bri;
                        g = p;
                        b = q;
                        break;
                }
            }
            red = Convert.ToInt32(r * 255);
            green = Convert.ToInt32(g * 255);
            blue = Convert.ToInt32(b * 255); ;
        }

81818在线手机版官方下载 8

  3、RGB与十六进制Hex表示的转换

81818在线手机版官方下载 9

        public static string RGB2Hex(int r, int g, int b)
        {
            return String.Format("#{0:x2}{1:x2}{2:x2}", (int)r, (int)g, (int)b);
        }
        public static Color Hex2Color(string hexColor)
        {
            string r, g, b;

            if (hexColor != String.Empty)
            {
                hexColor = hexColor.Trim();
                if (hexColor[0] == '#') hexColor = hexColor.Substring(1, hexColor.Length - 1);

                r = hexColor.Substring(0, 2);
                g = hexColor.Substring(2, 2);
                b = hexColor.Substring(4, 2);

                r = Convert.ToString(16 * GetIntFromHex(r.Substring(0, 1)) + GetIntFromHex(r.Substring(1, 1)));
                g = Convert.ToString(16 * GetIntFromHex(g.Substring(0, 1)) + GetIntFromHex(g.Substring(1, 1)));
                b = Convert.ToString(16 * GetIntFromHex(b.Substring(0, 1)) + GetIntFromHex(b.Substring(1, 1)));

                return Color.FromArgb(Convert.ToInt32(r), Convert.ToInt32(g), Convert.ToInt32(b));
            }

            return Color.Empty;
        }
        private static int GetIntFromHex(string strHex)
        {
            switch (strHex)
            {
                case ("A"):
                    {
                        return 10;
                    }
                case ("B"):
                    {
                        return 11;
                    }
                case ("C"):
                    {
                        return 12;
                    }
                case ("D"):
                    {
                        return 13;
                    }
                case ("E"):
                    {
                        return 14;
                    }
                case ("F"):
                    {
                        return 15;
                    }
                default:
                    {
                        return int.Parse(strHex);
                    }
            }
        }

81818在线手机版官方下载 10

 

转换算法摘自:

Magenta
Power旗下的ChargeGrid由一系列电动车充电站构成,可实现网络互联。该移动应用旨在为电动车用户提供使用权限,并将电动车连接到常见的平台上。该款应用将根据用户的行驶路线,提供沿线的充电站。用户还能使用地理围栏技术,探查到500米内的可用充电站设备。

Magenta印刷公司是Debenhams零售商的内部印刷公司,近日,Magenta购买了B1幅面海德堡速霸CX102
五色单张纸印刷机,并配有联机上光装置,以提高Magenta的准备时间和效率。

当年它由英属圭亚那的邮政局长发行,当地的《皇家公报》负责印刷,因为原本从英格兰付运的一批邮票出现延误。

81818在线手机版官方下载 11

今年8月,该公司旗下的首个印度充电站走廊亮相,如今又建立了首个综合性、自动化电动车充电站网络,用户可利用手机应用获得使用权限,该充电站归属ChargeGrid品牌旗下。

英属圭亚那1c Magenta邮票

81818在线手机版官方下载 12

据外媒报道,Magenta Power公司在印度新孟买(Navi
Mumbai)引入首款太阳能驱动型电动车充电站并提升其充电站的数量。

发表评论

电子邮件地址不会被公开。 必填项已用*标注