2019独角兽企业重金招聘Python工程师标准>>>

今天写了段C#代码,用于解决以下问题:

给定一个颜色,要找到有哪些.NET中自带的颜色与之相似,这里说的.NET自带的颜色,指类似Color.Blue、Color.Black这样的存在于Color结构中的Color类型公开静态属性。比如我要查询的颜色RGB值分别为135、112、155,那么在RGB值各上下浮动30点的范围内,应获得Color.Gray(128,128,128)、Color.LightSlateGray(119,136,153)、Color.SlateGray(112,128,144)三类相似的颜色。

建立一个C#命令行应用程序,手动添加引用System.Drawing用于支持Color类,然后输入如下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing; //需要手动添加引用System.Drawingnamespace ColorSearcher
{class Program{static void Main(string[] args){int interval = 30; //RGB差异均小于此值的颜色将被判断为相似颜色Color colorToSearch = default(Color); //用于存储用户录入的颜色bool isInputLegal = false;            //用于校验用户录入结果是否合法if (args.Length == 1) //用法1:ColorSearcher HTML颜色代码(如#ABABAB){try{colorToSearch = ColorTranslator.FromHtml(args[0]);isInputLegal = true;}catch (Exception ex){Console.WriteLine(ex.ToString());}}else if (args.Length >= 3) //用法2:ColorSearcher R G B(如 171 171 171){try{int r = int.Parse(args[0]);int g = int.Parse(args[1]);int b = int.Parse(args[2]);colorToSearch = Color.FromArgb(r, g, b);isInputLegal = true;}catch (Exception ex){Console.WriteLine(ex.ToString());return;}}//非法输入,显示帮助if (!isInputLegal){Console.WriteLine("用法1:ColorSearcher HTML颜色代码(如#ABABAB)");Console.WriteLine("用法2:ColorSearcher R G B(如 171 171 171)");return;}Console.WriteLine("指定颜色");Console.WriteLine(colorToSearch);//链表:用于存储从Color类中反射出的所有颜色LinkedList<Color> colors = new LinkedList<Color>();Type t = typeof(System.Drawing.Color);System.Reflection.PropertyInfo[] properties = t.GetProperties();foreach (System.Reflection.PropertyInfo property in properties){if (property.PropertyType.ToString() == "System.Drawing.Color"){colors.AddLast((Color)property.GetValue(t, null));}}//查找相似颜色Console.WriteLine("相似颜色");bool hasFinded = false;foreach (Color color in colors){if (Math.Abs(colorToSearch.R - color.R) < interval &&Math.Abs(colorToSearch.G - color.G) < interval &&Math.Abs(colorToSearch.B - color.B) < interval){Console.WriteLine(color + String.Format("[{0}, {1}, {2}]", color.R, color.G, color.B));hasFinded = true;}}if (!hasFinded){Console.WriteLine("未找到");}}}
}

这段代码有两种用法:

1、用法1:ColorSearcher HTML颜色代码(如#ABABAB)

2、用法2:ColorSearcher R G B(如 171 171 171)

运行效果如下:

END

转载于:https://my.oschina.net/Tsybius2014/blog/745302

C#代码:获取与指定颜色相似的.NET自带颜色相关推荐

  1. 花里胡哨,如何在Linux终端输出带有颜色的字体,将带颜色的字体赋值给变量...

    背景 ​ 在日常操作Linux的情况下,总会遇到一些需求,比如说,把输出的内容用不同颜色标注出来,以达到醒目.提示的目的,那么如何在Linux终端输出带有颜色的字体呢? Linux终端输出字符颜色 ​ ...

  2. python 颜色_Python可视化|matplotlib07自带颜色条Colormap(三)

    "pythonic生物人"的第28篇分享. 感觉不错可以点个"赞"或"在看"哦. 摘要 本篇详细介绍matplotlib内置的颜色条Colo ...

  3. Python爬虫:二十行代码获取某知名网站高质量视频,带视频讲解

    文章目录 一.写在前面 二.爬虫原理 三.案例实现 四.视频讲解 一.写在前面 兄弟们,自从上次爬虫热门后,我就没发高质量爬虫了,看的人都少了,唉~ 原来你们都是这样的人 二.爬虫原理 作用: 批量获 ...

  4. Android 获取屏幕指定坐标的颜色

    用到的API MediaProjectionManager MediaProjection VirtualDisplay ImageReader 原理:利用Android系统提供的投影功能把屏幕投影到 ...

  5. python绘图颜色代码大全_matplotlib指定绘图颜色的八种方式——python篇

    在使用matplotlib的pyplot库进行绘图时,经常会发现各种开源代码指定"color"的方式并不一致.通过查阅官方资料[1],发现共有8种指定color的方式.8种方式如下 ...

  6. Windows核心编程_获取鼠标指定位置的RGB颜色值

    Windows核心编程_获取鼠标指定位置的RGB颜色值 大家平常会见到很多屏幕取色工具,其原理都是获取鼠标位置的屏幕像素点颜色! 一般思路都是:获取鼠标位置,然后取出鼠标指向的屏幕像素点颜色! Get ...

  7. Python生成中文词云图(二):不可指定词云特定的形状和颜色。

    Python生成中文词云图(二):不可指定词云特定的形状和颜色. 什么是词云? 首先,什么是词云呢?词云又叫文字云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关 ...

  8. Python生成中文词云图(一):可指定特定的词云形状和颜色。

    Python生成中文词云图 什么是词云? 首先,什么是词云呢?词云又叫文字云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从 ...

  9. c# typescript_在任何IDE中从C#,Java或Python代码获取TypeScript接口的简单方法

    c# typescript by Leonardo Carreiro 莱昂纳多·卡雷罗(Leonardo Carreiro) 在任何IDE中从C#,Java或Python代码获取TypeScript接 ...

最新文章

  1. 2018秋寒假作业4—PTA编程总结1
  2. C#中try catch中throw ex和throw方式抛出异常有何不同
  3. 吴恩达深度学习笔记13-Course4-Week4【人脸识别和神经风格转换】
  4. Opencv学习笔记之OpenCV介绍
  5. JAVASCRIPT发展历程
  6. Basic认证方式访问url
  7. 位运算 c语言 头文件 linux,1. 位运算_C语言_C语言入门-Linux C编程一站式学习...
  8. Go Web:HttpRouter路由(一)
  9. 基于TableStore构建简易海量Topic消息队列
  10. Codeforces 71A Way Too Long Words
  11. 重读领域驱动设计——如何说好一门通用语言
  12. mysql实现添加图片_如何往mysql中添加图片
  13. mysql查询最后一条记录
  14. 【自考】马克思主义基本原理概论—容易混淆的点
  15. MySQL数据库笔记——进阶篇
  16. 脂肪体重器、手环、NFC手机
  17. WorldView卫星家族简介
  18. 【在线翻译英文】的网站
  19. [数据分析] RFM分析方法
  20. java中循环右移两位_1008 数组元素循环右移问题 (20分)【java题解】

热门文章

  1. 20155220吴思其 实验2 Windows口令破解
  2. php和mysql两种不同方式的分割字符串和类型转换
  3. python模块之hashlib加密
  4. Oracle数据库管理员经常使用的表和视图
  5. 我的log4j与logback简易配置
  6. IOS15 SVProgressHUD 报UIWindow 无法识别错误
  7. IOS之Swift5.x和OC网络请求JSON
  8. tensorflow 语义slam_【论文阅读28】DynaSLAM
  9. 成都python数据分析师职业技能_想成为数据分析师,需要重点学习什么技能?
  10. js 延迟几秒执行_深入研究 Node.js 的回调队列