2012年9月24日 星期一
將顏色16進位字串色碼轉成 System.Drawing.Color 物件
Author: Mango
|
at:凌晨3:04
|
Category :
.NET,
C#,
Framework 3.5,
visual studio 2008
|
將 #FF1000 轉成color
和反轉成 #色碼
//色碼轉換 16進制轉10進制
public static Color HexColor(String hex)
{
//將井字號移除
hex = hex.Replace("#", "");
byte a = 255;
byte r = 255;
byte g = 255;
byte b = 255;
int start = 0;
//處理ARGB字串
if (hex.Length == 8)
{
a = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
start = 2;
}
else if (hex.Length < 6) //錯誤的色碼 直接輸出預設值#000000
{
return Color.FromArgb(255, 17, 0, 0);
}
// 將RGB文字轉成byte
r = byte.Parse(hex.Substring(start, 2), System.Globalization.NumberStyles.HexNumber);
g = byte.Parse(hex.Substring(start + 2, 2), System.Globalization.NumberStyles.HexNumber);
b = byte.Parse(hex.Substring(start + 4, 2), System.Globalization.NumberStyles.HexNumber);
return Color.FromArgb(a, r, g, b);
}
//反色碼轉換 Color的10進制轉16進制
public static String XColor(Color _co)
{
//處理ARGB字串
string _a = _co.A.ToString("X").PadLeft(2, '0');
string _r = _co.R.ToString("X").PadLeft(2, '0');
string _g = _co.G.ToString("X").PadLeft(2, '0');
string _b = _co.B.ToString("X").PadLeft(2, '0');
return "#" + _r + _g + _b;
}
參考
http://www.cnblogs.com/wxbjs/archive/2010/07/15/1777916.html
http://www.dotblogs.com.tw/junegoat/archive/2012/06/22/color-convert-form-hex-string.aspx
訂閱:
張貼留言 (Atom)
0 意見:
張貼留言