C#代码:获取与指定颜色相似的.NET自带颜色
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自带颜色相关推荐
- 花里胡哨,如何在Linux终端输出带有颜色的字体,将带颜色的字体赋值给变量...
背景 在日常操作Linux的情况下,总会遇到一些需求,比如说,把输出的内容用不同颜色标注出来,以达到醒目.提示的目的,那么如何在Linux终端输出带有颜色的字体呢? Linux终端输出字符颜色 ...
- python 颜色_Python可视化|matplotlib07自带颜色条Colormap(三)
"pythonic生物人"的第28篇分享. 感觉不错可以点个"赞"或"在看"哦. 摘要 本篇详细介绍matplotlib内置的颜色条Colo ...
- Python爬虫:二十行代码获取某知名网站高质量视频,带视频讲解
文章目录 一.写在前面 二.爬虫原理 三.案例实现 四.视频讲解 一.写在前面 兄弟们,自从上次爬虫热门后,我就没发高质量爬虫了,看的人都少了,唉~ 原来你们都是这样的人 二.爬虫原理 作用: 批量获 ...
- Android 获取屏幕指定坐标的颜色
用到的API MediaProjectionManager MediaProjection VirtualDisplay ImageReader 原理:利用Android系统提供的投影功能把屏幕投影到 ...
- python绘图颜色代码大全_matplotlib指定绘图颜色的八种方式——python篇
在使用matplotlib的pyplot库进行绘图时,经常会发现各种开源代码指定"color"的方式并不一致.通过查阅官方资料[1],发现共有8种指定color的方式.8种方式如下 ...
- Windows核心编程_获取鼠标指定位置的RGB颜色值
Windows核心编程_获取鼠标指定位置的RGB颜色值 大家平常会见到很多屏幕取色工具,其原理都是获取鼠标位置的屏幕像素点颜色! 一般思路都是:获取鼠标位置,然后取出鼠标指向的屏幕像素点颜色! Get ...
- Python生成中文词云图(二):不可指定词云特定的形状和颜色。
Python生成中文词云图(二):不可指定词云特定的形状和颜色. 什么是词云? 首先,什么是词云呢?词云又叫文字云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关 ...
- Python生成中文词云图(一):可指定特定的词云形状和颜色。
Python生成中文词云图 什么是词云? 首先,什么是词云呢?词云又叫文字云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从 ...
- c# typescript_在任何IDE中从C#,Java或Python代码获取TypeScript接口的简单方法
c# typescript by Leonardo Carreiro 莱昂纳多·卡雷罗(Leonardo Carreiro) 在任何IDE中从C#,Java或Python代码获取TypeScript接 ...
最新文章
- 2018秋寒假作业4—PTA编程总结1
- C#中try catch中throw ex和throw方式抛出异常有何不同
- 吴恩达深度学习笔记13-Course4-Week4【人脸识别和神经风格转换】
- Opencv学习笔记之OpenCV介绍
- JAVASCRIPT发展历程
- Basic认证方式访问url
- 位运算 c语言 头文件 linux,1. 位运算_C语言_C语言入门-Linux C编程一站式学习...
- Go Web:HttpRouter路由(一)
- 基于TableStore构建简易海量Topic消息队列
- Codeforces 71A Way Too Long Words
- 重读领域驱动设计——如何说好一门通用语言
- mysql实现添加图片_如何往mysql中添加图片
- mysql查询最后一条记录
- 【自考】马克思主义基本原理概论—容易混淆的点
- MySQL数据库笔记——进阶篇
- 脂肪体重器、手环、NFC手机
- WorldView卫星家族简介
- 【在线翻译英文】的网站
- [数据分析] RFM分析方法
- java中循环右移两位_1008 数组元素循环右移问题 (20分)【java题解】
热门文章
- 20155220吴思其 实验2 Windows口令破解
- php和mysql两种不同方式的分割字符串和类型转换
- python模块之hashlib加密
- Oracle数据库管理员经常使用的表和视图
- 我的log4j与logback简易配置
- IOS15 SVProgressHUD 报UIWindow 无法识别错误
- IOS之Swift5.x和OC网络请求JSON
- tensorflow 语义slam_【论文阅读28】DynaSLAM
- 成都python数据分析师职业技能_想成为数据分析师,需要重点学习什么技能?
- js 延迟几秒执行_深入研究 Node.js 的回调队列