【前端】使用javascript开发一个在线RGB颜色转换

欢迎来到《小5讲堂》
大家好,我是全栈小5。
这是是《前端》序列文章,每篇文章将以博主理解的角度展开讲解,
特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。
温馨提示:博主能力有限,理解水平有限,若有不对之处望指正!

在这里插入图片描述

目录

  • 背景
  • RGB转HEX
    • 效果
    • 代码
  • HEX转RGB
    • 效果
    • 代码
  • 什么是RGB
  • RGB原理
  • HEX16

背景

目前已经有很多网页版在线小工具,之前很多窗体化的工具也逐渐网页化,比如:PS画图软件,也都能直接网页化进行设计,
网页真的是无所不能了。
由于自己实际项目经常会用到颜色转换,所以直接自己开发个简单版的在线颜色转换小工具。

RGB转HEX

效果

在这里插入图片描述

代码

<html>
<head><meta charset="utf-8" /><title>颜色在线转换</title><style type="text/css"></style>
</head>
<body><!----><div style="display: flex; margin-top: 100px;"><div style="display:flex;width:260px;"><div style="width:60px;height: 35px;line-height: 35px;text-align: center;background: #ccc;"><span>RGB</span></div><div style="width:200px;height: 33px;line-height: 33px;border: 1px solid #ccc;"><input id="txtRgb" placeholder="请输入RGB值 如:255,255,255" style="width:100%;padding: 7px 7px;outline: none;background: none;border: none;"></div></div><div style="height: 35px; line-height: 35px;padding:0 10px;"><span>转为</span></div><div style="display:flex;width:260px;"><div style="width:60px;height: 35px;line-height: 35px;text-align: center;background: #ccc;"><span>HEX</span></div><div style="width:200px;height: 33px;line-height: 33px;border: 1px solid #ccc;"><input id="txtHex" readonly="readonly" style="width:100%;padding: 7px 7px;outline: none;background: none;border: none;"></div></div></div></body>
</html><script type="text/javascript">var rgb = document.getElementById('txtRgb');var hex = document.getElementById('txtHex');rgb.onkeyup = function () {if (rgb.value && rgb.value.split(',').length == 3) {var hexValue = rgbToHex("rgb(" + rgb.value + ")");hex.value = hexValue;}}//function rgbToHex(rgb) {// 使用正则表达式提取出数字部分var rgbArray = rgb.match(/\d+/g);// 将 RGB 分量转换为十六进制,并补零var r = parseInt(rgbArray[0]).toString(16).padStart(2, '0');var g = parseInt(rgbArray[1]).toString(16).padStart(2, '0');var b = parseInt(rgbArray[2]).toString(16).padStart(2, '0');// 将结果拼接为 HEX 格式var hex = '#' + r + g + b;return hex;}</script>

HEX转RGB

效果

在这里插入图片描述

代码

<html>
<head><meta charset="utf-8" /><title>颜色在线转换</title><style type="text/css"></style>
</head>
<body><!----><div style="display: flex; margin-top: 50px;"><div style="display: flex; width: 260px;"><div style="width:60px;height: 35px;line-height: 35px;text-align: center;background: #ccc;"><span>HEX</span></div><div style="width: 200px; height: 33px; line-height: 33px; border: 1px solid #ccc;"><input id="txtHex2" placeholder="请输入HEX值 如:#FFFFFF" style="width:100%;padding: 7px 7px;outline: none;background: none;border: none;"></div></div><div style="height: 35px; line-height: 35px;padding:0 10px;"><span>转为</span></div><div style="display: flex; width: 260px;"><div style="width:60px;height: 35px;line-height: 35px;text-align: center;background: #ccc;"><span>RGB</span></div><div style="width: 200px; height: 33px; line-height: 33px; border: 1px solid #ccc;"><input id="txtRgb2" readonly="readonly" style="width:100%;padding: 7px 7px;outline: none;background: none;border: none;"></div></div></div></body>
</html><script type="text/javascript">var hex2 = document.getElementById('txtHex2');var rgb2 = document.getElementById('txtRgb2');hex2.onkeyup = function () {if (hex2.value.length == 7) {var rgbValue = hexToRgb(hex2.value);rgb2.value = rgbValue;}}//function hexToRgb(hex) {// 去掉 # 号并分割成 r、g、b 三个部分var hexValue = hex.replace('#', '');var r = parseInt(hexValue.substring(0, 2), 16);var g = parseInt(hexValue.substring(2, 4), 16);var b = parseInt(hexValue.substring(4, 6), 16);// 返回 RGB 格式字符串var rgb = 'rgb(' + r + ', ' + g + ', ' + b + ')';return rgb;}</script>

什么是RGB

RGB(红绿蓝)是一种让我们能够创造出各种色彩的加法色彩模式。
在 RGB 模式下,颜色是通过混合三种绿的颜色成分来实现的。
这三种颜色可以以不同的深浅程度混合在一起,从而形成数百万种不同的颜色。
在前端开发中,RGB 经常被用来指定网页或者应用程序中的颜色。

RGB原理

RGB(红绿蓝)颜色模型是一种加法颜色混合模式,通过调节三种颜色的亮度来实现。
每种颜色有一个亮度范围从 0 到 255,0 表示完全暗,255 表示最亮。通过调节红色、绿色和蓝色的值,可以创建出所有的其他颜色。
当三种原色的值都为最小值时(即为0),得到的是黑色。当三种原色的值都为最大值时(即为255),得到的是白色。
通过增加或减少其中一种或多种原色的值,可以得到任意其他颜色。

例如,红色可以通过将红色分量设置为最大值 255,而将绿色和蓝色分量设置为最小值 0 来创建。
类似地,绿色和蓝色都可以分别单独设置为最大值来得到纯绿和纯蓝颜色。

在 CSS 中,颜色值可以使用 RGB 表示,
例如 rgb(255, 0, 0) 表示纯红色。
第一个参数是红色分量值,
第二个参数是绿色分量值,
第三个参数是蓝色分量值。
通过调整这些分量的值,可以获得所需的颜色。

HEX16

十六进制:英文名称,Hexadecimal
十六进制颜色值(HEX16)是指由六个十六进制数字组成的颜色编码,用于表示 RGB 颜色空间中的颜色。
每个十六进制数字可以取 0 到 9 的数字以及 A 到 F 的字母,表示 16 种可能的值,因此称为十六进制值。

在 HTML 和 CSS 中,常用的表示十六进制颜色值的方法是在 “#” 符号后面附加六个十六进制字符。
例如,红色的十六进制颜色值是 #FF0000,其中前两个字符表示红色分量的值,后面的四个字符分别表示绿色和蓝色分量的值。
通过将每个分量的十六进制值转换为十进制(即从 16 进制到 10 进制的转换),可以得到每个分量的值,进而得到完整的 RGB 值。

HEX16 色全名是十六进制颜色值的完整名称。这些名称是根据对应的颜色值或者颜色特征而命名的。以下是一些常见的 HEX16 色全名示例:

  • #FF0000: 红色
  • #00FF00: 绿色
  • #0000FF: 蓝色
  • #FFFFFF: 白色
  • #000000: 黑色
  • #FFFF00: 黄色
  • #FF00FF: 品红色
  • #00FFFF: 青色
  • #808080: 灰色
  • #FFA500: 橙色

这只是一小部分例子,实际上可以使用数百种不同的 HEX16 色全名来描述各种颜色。每种颜色都有其特定的 HEX16 色全名,用于更准确地识别和描述颜色。

总结:温故而知新,不同阶段重温知识点,会有不一样的认识和理解,博主将巩固一遍知识点,并以实践方式和大家分享,若能有所帮助和收获,这将是博主最大的创作动力和荣幸。也期待认识更多优秀新老博主。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/611880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebGL在实验室方向的应用

WebGL在实验室方向的应用涉及到实验过程的可视化、数据分析、模拟等方面。以下是一些WebGL在实验室领域的应用示例&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.分子模型和化学反应模拟&#xff…

Microsoft To-Do使用经验分享,使用Microsoft To-Do更好的规划自己的目标

为什么使用Microsoft To-Do 很久之前尝试使用过onenote,有道云笔记&#xff0c;印象笔记&#xff0c;小米便签等管理自己的日程&#xff0c;有一定的作用&#xff0c;但是功能过于简单或者冗余&#xff0c;没有达到时间管理的目的&#xff0c;没有办法坚持下来&#xff0c;通过…

C++类与对象基础(8)

目录 1. 隐式类型转换与关键字explicit: 1.1 隐式类型转换举例&#xff1a; 1.2 explicit关键字&#xff1a; 2. 友元&#xff1a; 2.1 友元函数&#xff1a; 2.2 友元类&#xff1a; 3. 内部类&#xff1a; 4. 勘误&#xff1a; 1. 隐式类型转换与关键字explicit: 1.1…

网安入门12-文件上传(黑白名单,00截断)

黑名单绕过 Pass-03 有的时候后端限制了一些黑名单&#xff0c;比如过滤后缀名.php 我们就可以用黑名单里没有的后缀名进行绕过&#xff0c;例如&#xff1a; 大小写&#xff1a;.phP .pHp .AsPphp1 .php2 .php3 .php9 .phtml&#xff08;成功率较高&#xff09;特殊文件名绕…

使用kennycason.kumo.WordCloud For JAVA 制作词云图

官网&#xff1a;https://kennycason.com/posts/2014-07-03-kumo-wordcloud.html 一&#xff1a;添加POM文件 <!-- 词云 --><dependency><groupId>com.kennycason</groupId><artifactId>kumo-core</artifactId><version>1.27<…

CHS_01.1.4+操作系统体系结构 一

CHS_01.1.4操作系统体系结构 一 操作系统的体系结构 也就是操作系统的内核应该怎么设计这样一个问题操作系统的内核 在这个小节中 我们会学习 操作系统的体系结构 也就是操作系统的内核应该怎么设计这样一个问题 那这个小节的内容我们只需要做简要的了解就可以了 我们考试中常考…

Day3Qt

1. &#xff08;1&#xff09;完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 …

C++并发编程实战第2版笔记

文章目录 p19 某个线程只可以join()一次p22 只有当joinable()返回true时才能调用detach()P21 在std::thread对象析构前&#xff0c;必须明确是等待还是分离线程P25 移动语义P25 将类的成员函数设定为线程函数 p19 某个线程只可以join()一次 只要调用了join()&#xff0c;隶属于…

概述:利用大模型 (LLMs) 解决信息抽取任务

论文标题&#xff1a;Large Language Models for Generative Information Extraction: A Survey 论文链接&#xff1a;https://arxiv.org/pdf/2312.17617.pdf 论文主要探讨了大型语言模型&#xff08;LLMs&#xff09;在生成式信息抽取&#xff08;IE&#xff09;任务中的应用…

文献阅读1

A Hierarchical Representation Network for Accurate and Detailed Face Reconstruction from In-The-Wild Images 会议/期刊&#xff1a;CVPR 2023&#xff1b;阿里达摩院&#xff1b;Biwen Lei 概述&#xff1a;这是一篇单张图片三维人脸重建的论文&#xff0c;这篇论文的…

Android 事件分发介绍

文章目录 一、目的二、环境三、相关概念3.1 事件分发 四、详细设计4.1应用布局4.1.1 应用布局结构4.1.2 LayoutInspector 4.2 关键View&方法4.2.1 相关View4.2.2 相关方法4.2.3 View与方法关系 4.3 事件分发概念图4.3.1 事件分发类图4.3.2 事件分发模型图 4.4 Activity组件…

Federated Unlearning for On-Device Recommendation

WSDM 2023 CCF-B Federated Unlearning for On-Device Recommendation 本文工作的主要介绍 本文主要介绍了一种名为FRU&#xff08;Federated Recommendation Unlearning&#xff09;的联邦学习框架&#xff0c;用于在设备端的推荐系统中实现用户数据的有效擦除和模型重建。…

0x53 区间DP

0x53 区间DP 到目前为止&#xff0c;我们介绍的线性DP一般从初态开始&#xff0c;沿着阶段的扩张向某个方向递推&#xff0c;直至计算出目标状态。区间DP也属于线性DP中的一种&#xff0c;它以“区间长度”作为DP的“阶段”&#xff0c;使用两个坐标&#xff08;区间的左右端点…

Python-面向对象

面向对象 1.初识对象1.1理解使用对象完成数据组织的思路 2.成员方法2.1类的定义和使用语法2.2成员方法的使用 3.类和对象4.构造方法4.1使用构造方法向成员变量赋值 5.其他内置方法5.1__str__字符串方法5.2__lt__小于符号比较方法5.3__le__小于等于比较符号5.4__eq__比较运算符实…

VUE3相比VUE2升级了哪些内容

目录 一、Vue 3 、Vue 2 对比及提升项 二、 Vue 3 创建app.vue示例 三、Vue3 的setup、Vue2 的 data对比 一、Vue 3 、Vue 2 对比及提升项 性能提升&#xff1a;Vue 3 做了大量的优化工作&#xff0c;提升了运行时的性能。例如&#xff0c;在模板编译时进行的静态分析和优化…

如何把苹果手机中的备忘录导入到电脑?这种方法特别方便

作为苹果手机的忠实用户&#xff0c;我深知备忘录在日常生活中的重要性。它是我随手记下的灵感闪现&#xff0c;是工作会议的要点记录&#xff0c;更是生活中的小提醒和重要事务的备忘录。然而&#xff0c;有时我需要将这些信息从手机导入到电脑中&#xff0c;以便更方便地查看…

k8s的存储卷---数据卷

前言 容器磁盘上的文件的生命周期是短暂的&#xff0c;这就使得在容器中运行重要应用时会出现一些问题。首先&#xff0c;当容器崩溃时&#xff0c;kubelet 会重启它&#xff0c;但是容器中的文件将丢失——容器以干净的状态&#xff08;镜像最初的状态&#xff09;重新启动。其…

【大数据OLAP引擎】StarRocks为什么快?

StarRocks的优势 StarRocks最初主要的优势是性能&#xff0c;当时在单表查询方面与性能标杆ClickHouse不相上下&#xff0c;而join优化特性使其在多表关联查询场景下的性能表现要远远优于ClickHouse&#xff0c;替换ClickHouse自然也就成了StarRocks的第一个目标。 而StarRoc…

three.js实现雷达扫描效果(纹理贴图)

three.js实现雷达扫描效果&#xff08;纹理贴图&#xff09; 图例 步骤 创建两个平面&#xff0c;分别纹理贴图&#xff0c;底图模型.add&#xff08;光波模型&#xff09;关闭材质的深度测试光波旋转 代码 <template><div class"app"><div ref&q…

【算法每日一练]-练习篇 #Tile Pattern #Swapping Puzzle # socks

目录 今日知识点&#xff1a; 二维前缀和 逆序对 袜子配对(感觉挺难的&#xff0c;又不知道说啥) Tile Pattern Swapping Puzzle socks Tile Pattern 331 题意&#xff1a;有一个10^9*10^9的方格。W表示白色方格&#xff0c;B表示黑色方格。每个(i,j)方的颜色由(i…