首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将System.Drawing.Color转换为int?

将System.Drawing.Color转换为int?
EN

Stack Overflow用户
提问于 2018-10-29 21:33:17
回答 1查看 5K关注 0票数 1

在数据库中,我们把颜色存储为int's (不要问.这是一个非常古老的应用程序。)示例:

-16777216 =黑色

我能够将-16777216转换为#000000 (我实际上可以在UI中使用它):

代码语言:javascript
复制
string htmlColor = ConvertToColor("-16777216");

将从此方法返回"#000000"

代码语言:javascript
复制
private string ConvertColor(string value)
{
    int valInt = Convert.ToInt32(value);
    System.Drawing.Color color = System.Drawing.Color.FromArgb(valInt);
    return System.Drawing.ColorTranslator.ToHtml(color);
}

但是现在,为了以相同的格式重新保存值,我遇到了倒退的困难:

代码语言:javascript
复制
string intColor = RevertColor("#000000");

到目前为止,我的情况如下:

代码语言:javascript
复制
private string RevertColor(string value)
{
    System.Drawing.Color color = System.Drawing.ColorTranslator.FromHtml(value);
    return ????;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-29 21:37:32

如果FromArgb()朝一个方向工作,那么ToArgb()似乎应该朝另一个方向工作:

代码语言:javascript
复制
private string RevertColor(string value)
{    
    return System.Drawing.ColorTranslator.FromHtml(value).ToArgb().ToString();
}

..。但我也不确定我是否理解其中的细微差别。如果这不能完成工作,请解释它是如何失败的。

如果字符串实际上是数据库中的int值,那么您完全想要一个字符串,这似乎也很奇怪。这让我感到害怕,您可能正在使用非常不安全的实践,以及如何将这些值保存在SQL中。如果没有其他的,那么在这样的字符串之间来回转换对于性能来说是次优的。由于文化/国际化问题,这些转换操作比您想象的要昂贵得多。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53054148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档