【CSS in Depth 2 精译_080】 13.1:CSS 渐变效果(中)——不同色彩空间的颜色插值算法在 CSS 渐变中的应用

当前内容所在位置(可进入专栏查看其他译好的章节内容)

  • 第四部分 视觉增强技术 ✔️
  • 【第 13 章 渐变、阴影与混合模式】 ✔️
    • 13.1 渐变 ✔️
      • 13.1.1 使用多个颜色节点(上)
      • 13.1.2 颜色插值方法(中) ✔️
      • 13.1.3 径向渐变(下)
      • 13.1.4 锥形渐变(下)

文章目录

    • 13.1.2 颜色插值方法 Color interpolation
      • 13.1.2.1 极坐标色彩空间下的高级设置 More options in polar color spaces
      • 13.1.2.2 浏览器 Bug 与颜色问题 Browser bugs and color quirks

《CSS in Depth》新版封面

《CSS in Depth》新版封面

译者按
本篇又是第二版全新增补的崭新内容,充分体现了新版 CSS 颜色语法在渐变设置中的灵活应用。时隔不到半年,书中提到的浏览器兼容问题已经成为了历史,足见这些新特性的受欢迎程度。本书虽未涉及色彩空间的底层插值算法理论(实际也用不上),但作者聚焦实战的讲解思路和业内最佳实践的倾囊相授,已经足以应对今后绝大多数的 CSS 渐变应用场景,并助您在团队中脱颖而出。

13.1.2 颜色插值方法 Color interpolation

在第 11 章中,我们学习了 CSS 颜色的各种表示方法以及色彩空间方面的知识。就在前不久,浏览器对渐变效果的计算都还仅限于 sRGB 色彩空间;如今,使用其他色彩空间来设置渐变已经成为了人们新的选择。在色彩渐变过程中,浏览器对于中间色的计算结果很可能会因为所选色彩空间的不同而存在显著差异。因为在不同的色彩空间中,色彩的几何排布情况各不相同,从而导致一个色彩空间中两个颜色点之间的颜色与另一个色彩空间截然不同。

图 13.6 给出了两个示例渐变效果。它们都是从左侧的黄色过渡到右侧的蓝色,但由于分属不同的色彩空间,用到的插值算法也不同,从而导致了风格迥异的中间渐变色效果。

图 13.6 色彩空间截然不同的两种渐变效果可能存在显著差异

【图 13.6 色彩空间截然不同的两种渐变效果可能存在显著差异】

在本例中,sRGB 色彩空间下的渐变设置会在其中心区域穿过某个灰色区间,这在 RGB 相关的颜色理论支撑下是解释得通的。黄色 yellowRGB 颜色值为 rgb(255 255 0),而蓝色 blue 的值为 rgb(0 0 255)。如果每个参数维度都按线性插值计算,则会在渐变的中心位置得到一个红、绿、蓝分量皆为 127.5 的过渡色,即本例中的灰色,有时也被称为 “灰色死区(gray dead zone 1)”。在 sRGB 色彩空间下,位于色轮(color wheel 2)对侧或大致对侧的任意两种颜色在设置渐变效果时都会看到类似的结果,其渐变色必将穿过色轮中间的灰色地带。

另一方面,黄色和蓝色在 OKLCH 色彩空间下可以分别表示为 oklch(97% 0.21 110deg)oklch(45% 0.31 264deg)。此时的渐变计算主要是将色调的角度由 110 度变为 264 度,渐变色依次穿过绿色(green)、青色(teal)及蓝绿色(cyan)。与 sRGB 时直接穿过色轮的中心区域不同,OKLCH 色彩空间下的颜色渐变会绕道而行,留下沿途经过的各种中间色。

警告

在 CSS 渐变中指定色彩空间仍是一个相对较新的功能特性。截至 2024 年年中,Firefox 尚未提供相应支持。因此在启用该特性时,还应该准备一个回退版的渐变设置,以适应不支持该特性的应用场景。

译注

截至 2024 年 12 月 16 日,根据 Can I Use 网站最新的统计数据,Firefox 等主流浏览器厂家已经全面支持渐变的色彩空间插值算法,目前的综合普及率已达 91.53%(线性、径向、锥形及其重复渐变版本的统计结果均保持一致):

补图1:各主流浏览器厂家已全面支持 CSS 渐变的色彩空间插值算法(截至 2024 年 12 月 16 日)

【补图1:各主流浏览器厂家已全面支持 CSS 渐变的色彩空间插值算法(截至 2024 年 12 月 16 日)】

在渐变中手动指定颜色空间的具体写法如代码清单 13.7 所示。这里为 Firefox 及其他老版本浏览器预备了一个回退方案。注意观察,我们在 linear-gradient() 函数的第一个参数中添加了一个关键词 in oklch。根据下列代码同步更新样式表:

代码清单 13.7 指定色彩空间为 OKLCH 的 CSS 渐变写法示例

.fade {height: 200px;width: 400px;background-image: linear-gradient(90deg, yellow, blue); /* 老版本浏览器的回退方案 */background-image: linear-gradient(90deg in oklch, yellow, blue); /* 指明色彩空间为 OKLCH 时的渐变写法 */
}

在确保您当前的浏览器支持 OKLCH 色彩空间的情况下,可以利用浏览器的开发者工具 DevTools,通过禁用或启用第二个 background-image 规则集来查看二者的显著区别。

在指定某个具体色彩空间时,必须使用关键字 in,然后再跟上所需的色彩空间名称。也可以指定其他 CSS 支持的色彩空间名称,如极坐标色彩空间中的 hslhwblchoklch,以及矩形色彩空间下的 srgbsrgb-linearlaboklabxyzxyz-d50 或者 xzy-d65(注意,不是每个色彩空间都有对应的 CSS 颜色语法函数)。如果不指定色彩空间,默认按 sRGB 进行插值运算。

由于每种色彩空间渲染出的渐变效果各不相同,因此当需要设置特定的渐变效果时,多尝试几种色彩空间不失为寻求最优方案的一个有效途径。通常情况下,如果渐变涉及的两种色调存在明显差异,此时指定某个极坐标色彩空间(如 oklchhsl)效果可能会更好一些;若要从更鲜艳的色彩过渡到中性色调(如灰色、黑色、白色或透明色等),则最好选用矩形色彩空间(如 srgb)。

注意

CSS 渐变中涉及的颜色插值算法与第 11 章中讲过的 color-mix() 函数中的用法相同。例如,声明 color-mix(in srgb, white 20% blue) 的渲染效果,从数学的角度看,与 srgb 色域下由白到蓝渐变、且距白色节点 20% 处的渐变色相比,效果是一样的。

另外,谷歌的 Chrome 团队还针对当前所有可用的色彩空间在 Code Pen 网站上制作了几个渐变效果的演示案例,具体的渲染效果详见:https://codepen.io/keithjgrant/full/GRzjGqL。您不妨快速浏览一遍,了解各个色彩空间在渐变设置中的差异。值得注意的是,在这些演示案例中个别示例还暴露了一些浏览器的 Bug,这个问题稍后再做处理。

13.1.2.1 极坐标色彩空间下的高级设置 More options in polar color spaces

在极坐标色彩空间下,色调是一个可以循环取值的参数(circular value)。因此,在设置两个不同色调的渐变效果时,渐变运算可以分别沿着色轮的两个不同方向进行。例如,由红色渐变为黄色,通常会出现橙色的渐变色。此时采用的是较短的渐变路径,也是 CSS 渐变默认的方向。

然而上述渐变也可以沿色轮中较长的路径进行,使其依次经过品红(magenta)、紫色(purple)、蓝色(blue)、蓝绿色(teal)以及绿色(green)。若两种颜色在色轮上的距离较近,那么沿较长路径定义的渐变效果将渲染出一道绚丽彩虹色。您甚至可以将两个颜色节点指定为同一颜色,从而得到长路径下的完整彩虹效果,如图 13.7 所示的色轮路径示意图。

图 13.7 极坐标色彩空间下的渐变设置可以沿着色轮的两条长短不一的路径分别进行

【图 13.7 极坐标色彩空间下的渐变设置可以沿着色轮的两条长短不一的路径分别进行】

渐变路径的变更可以通过在渐变函数中添加关键字 long hue 实现。根据代码清单 13.8 同步更新本地样式表,并查看最终的渐变效果。

代码清单 13.8 long hue 在渐变函数中的示例应用

.fade {height: 200px;width: 400px;background-image: linear-gradient(90deg, yellow, blue);background-image: linear-gradient(90deg in oklch longer hue, /* 令渐变沿较长的色调路径进行 */yellow,blue);
}

在渐变函数中,第一个参数很可能因为声明了这些配置项而书写得较长,例如上述代码。此时应该像示例代码那样,将样式声明分为多行进行书写。

CSS 提供了四个不同的关键字来设置渐变的色调方向,它们仅在极坐标色彩空间(polar color space)下有效:

  • shorter hue —— 在两种色调间选择较短路径(默认值);
  • longer hue —— 在两种色调间选择较长路径;
  • increasing hue —— 路径方向与色调角递增(即顺时针)的方向一致;
  • decreasing hue —— 路径方向与色调角递减(即逆时针)的方向一致。

不妨尝试在渐变设置中使用上述关键词,并查看其相应的渲染效果。在本例中,increasing hue 等效于 shorter huedecreasing hue 等效于 longer hue。究其原因,示例中的黄色和蓝色在色轮上的角度分别为 110 度和 164 度(这些数值是通过浏览器的开发者工具、将黄色 yellow 和蓝色 blue 分别转换为对应的 OKLCH 颜色值后得到的)。但如果使用了不同的颜色节点(color stops),情况则可能大不相同。

13.1.2.2 浏览器 Bug 与颜色问题 Browser bugs and color quirks

CSS 许多新推出的颜色特性对于浏览器而言都相对较新,并且其中也存在一些错误(bugs),尤其是在渐变中使用 OKLCHHSL 色彩空间时:对于某些色调(特别是蓝色),如果其中一个颜色节点为白色、黑色、或透明,可能会出现意外状况。

例如,在 OKLCHHSL 色彩空间下、由蓝色渐变到某种非饱和色(如白色或黑色)的过程中,都会产生绿色或紫色的渐变色,具体效果视非饱和色的颜色深度以及被测浏览器而定;再比如,在从红色渐变到某非饱和色的过程中,中间位置会生成橙色(orange)或酒红色(burgundy)的渐变色。希望这些问题都能在被波及浏览器的后续版本更新中得以修复。在将白色、黑色、灰色或透明色设为渐变效果的颜色节点时,目前避开上述问题的最佳方案,是使用 sRGB 或者其他矩形色彩空间。

如果实在要使用 OKLCHHSL 色彩空间,上述问题也可以通过这样的方式来解决:采用同样的色彩空间来指定渐变需要的颜色;然后在保持相同色调的情况下,适度微调色度(或饱和度)参数,以此作为渐变中的其他颜色节点(color stop)。比如说,在 OKLCH 色彩空间下定义一个由蓝色 blueoklch(100% 0.001 264deg) 的渐变效果,而非直接从蓝色 blue 渐变到白色 white。该方案的更多详细介绍,可以参考我写的这篇文章:https://mng.bz/2Kp0。



关于《CSS in Depth》(中译本书名《深入解析 CSS》)

第 1 版第 2 版
读者评分原版:4.7(亚马逊);中文版:9.3(豆瓣)原版:5.0(亚马逊);中文版:暂无,待出版
出版时间原版:2018 年 3 月;中文版:2020 年 4 月原版:2024 年 7 月;中文版:暂无,待出版
原价原版:$44.99;中文版:¥139.00原版:$59.99;中文版:暂无,待出版
现价原版:$36.49;中文版:¥52.54 起步原版:$52.09;中文版:暂无,待出版
原版国内预订起步价 ¥461.00起步价 ¥750.00

本专栏为该书第 2 版高分译文专栏,全网首发,精译精校,持续更新,计划今年内完成全书翻译,敬请期待!!!

目前已完结的章节(可进入本专栏查看详情,连载期间完全免费):

  • 第一章 层叠、优先级与继承(已完结)
    • 1.1 层叠
    • 1.2 继承
    • 1.3 特殊值
    • 1.4 简写属性
    • 1.5 CSS 渐进式增强技术
    • 1.6 本章小结
  • 第二章 相对单位(已完结)
    • 2.1 相对单位的威力
    • 2.2 em 与 rem
    • 2.3 告别像素思维
    • 2.4 视口的相对单位
    • 2.5 无单位的数值与行高
    • 2.6 自定义属性
    • 2.7 本章小结
  • 第三章 文档流与盒模型(已完结)
    • 3.1 常规文档流
    • 3.2 盒模型
    • 3.3 元素的高度
    • 3.4 负的外边距
    • 3.5 外边距折叠
    • 3.6 容器内的元素间距问题
    • 3.7 本章小结
  • 第四章 Flexbox 布局(已完结)
    • 4.1 Flexbox 布局原理
    • 4.2 弹性子元素的大小
    • 4.3 弹性布局的方向
    • 4.4 对齐、间距等细节处
    • 4.5 本章小结
  • 第五章 网格布局(已完结)
    • 5.1 构建基础网格
    • 5.2 网格结构剖析 (上)
      • 5.2.1 网格线的编号(下)
      • 5.2.2 网格与 Flexbox 配合(下)
    • 5.3 两种替代语法
      • 5.3.1 命名网格线
      • 5.3.2 命名网格区域
    • 5.4 显式网格与隐式网格(上)
      • 5.4.1 添加变化 (中)
      • 5.4.2 让网格元素填满网格轨道(下)
    • 5.5 子网格(全新增补内容)
    • 5.6 对齐相关的属性
    • 5.7 本章小结
  • 第六章 定位与堆叠上下文(已完结)
    • 6.1 固定定位
      • 6.1.1 创建一个固定定位的模态对话框
      • 6.1.2 在模态对话框打开时防止屏幕滚动
      • 6.1.3 控制定位元素的大小
    • 6.2 绝对定位
      • 6.2.1 关闭按钮的绝对定位
      • 6.2.2 伪元素的定位问题
    • 6.3 相对定位
      • 6.3.1 创建下拉菜单(上)
      • 6.3.2 创建 CSS 三角形(下)
    • 6.4 堆叠上下文与 z-index
      • 6.4.1 理解渲染过程与堆叠顺序(上)
      • 6.4.2 用 z-index 控制堆叠顺序(上)
      • 6.4.3 深入理解堆叠上下文(下)
    • 6.5 粘性定位
    • 6.6 本章小结
  • 第七章 响应式设计(已完结)
    • 7.1 移动端优先设计原则(上篇)
      • 7.1.1 创建移动端菜单(下篇)
      • 7.1.2 给视口添加 meta 标签(下篇)
    • 7.2 媒体查询(上篇)
      • 7.2.1 深入理解媒体查询的类型(上篇)
      • 7.2.2 页面断点的添加(中篇)
      • 7.2.3 响应式列的添加(下篇)
    • 7.3 流式布局
    • 7.4 响应式图片
    • 7.5 本章小结
  • 第八章 层叠图层及其嵌套
    • 8.1 用 layer 图层来操控层叠规则(上篇)
      • 8.1.1 图层的定义(上篇)
      • 8.1.2 图层的顺序与优先级(下篇)
      • 8.1.3 revert-layer 关键字(下篇)
    • 8.2 层叠图层的推荐组织方案
    • 8.3 伪类 :is() 和 :where() 的用法
    • 8.4 CSS 嵌套的使用
      • 8.4.1 嵌套选择器的使用
      • 8.4.2 深入理解嵌套选择器
      • 8.4.3 媒体查询及其他 @规则 的嵌套
    • 8.5 本章小结
  • 第九章 CSS 的模块化与作用域
    • 9.1 模块的定义
      • 9.1.1 模块和全局样式
      • 9.1.2 一个简单的 CSS 模块
      • 9.1.3 模块的变体
      • 9.1.4 多元素模块
    • 9.2 将模块组合为更大的结构
      • 9.2.1 模块中多个职责的拆分
      • 9.2.2 模块的命名
    • 9.3 CSS 的作用域
      • 9.3.1 CSS 作用域的就近原则
      • 9.3.2 划定作用域的边界
      • 9.3.3 CSS 中的隐式作用域
      • 9.3.4 关于 CSS 作用域与层叠图层
    • 9.4 CSS 模式库
    • 9.5 本章小结
  • 第十章 CSS 容器查询
    • 10.1 容器查询的一个简单示例
      • 10.1.1 容器尺寸查询的用法
    • 10.2 深入理解容器
      • 10.2.1 容器的类型
      • 10.2.2 容器的名称
      • 10.2.3 容器与模块化 CSS
    • 10.3 与容器相关的单位
    • 10.4 容器样式查询的用法
      • 10.4.1 将模块与所在容器解耦
      • 10.4.2 减少重复代码
    • 10.5 本章小结
  • 第 11 章 颜色与对比
    • 11.1 通过对比进行交流
      • 11.1.1 模式的建立
      • 11.1.2 还原设计稿
    • 11.2 颜色的定义
      • 11.2.1 色域与色彩空间
      • 11.2.2 CSS 颜色表示法(RGB、Hex、HSL、HWB、LAB/OKLAB、LCH/OKLCH)
    • 11.3 利用 OKLCH 处理颜色(上篇)
      • 11.3.4 从页面其他颜色衍生出新颜色(下篇)
    • 11.4 思考字体颜色的对比效果
    • 11.5 本章小结
  • 第 12 章 CSS 排版与间距
    • 12.1 间距设置
      • 12.1.1 使用 em 还是 px
      • 12.1.2 对行高的深入思考
      • 12.1.3 行内元素的间距设置
    • 12.2 Web 字体
    • 12.3 谷歌字体
    • 12.4 @font-face 的工作原理
      • 12.4.1 字体格式与回退处理
      • 12.4.2 同一字型的多种变体形式
    • 12.5 性能因素考量
      • 12.5.1 font-display 属性解析
      • 12.5.2 可变字体的用法
    • 12.6 调整字间距,提升可读性
      • 12.6.1 正文的字间距
      • 12.6.2 标题、小元素和间距
    • 12.7 本章小结
  • 附录
    • 附录A:CSS 选择器参考
    • 附录B:CSS 预处理器简介

  1. 译注:关于 gray dead zone,CSS-TRICKS 网站也有一篇不错的文章探讨过这个问题,感兴趣的朋友不妨了解一下:https://css-tricks.com/the-gray-dead-zone-of-gradients/。 ↩︎

  2. color wheel,即色轮、色彩轮,是一个用于表示颜色关系的圆形图形。它将颜色排列成一个闭合的环形,通常包括原色、间色和复合色。色轮是艺术、设计和色彩理论的重要工具。 ↩︎

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

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

相关文章

JavaEE 【知识改变命运】06 多线程进阶(1)

文章目录 锁一常见的锁乐观锁和悲观锁轻量级锁和重量级锁自旋锁和挂起等待锁读写锁和普通互斥锁公平锁和不公平锁可重入锁和不可重入锁sycnchroized是什么锁 CAS什么是CASCAS伪代码CSA是怎么实现的CAS如何保证线程安全的呢实现自旋锁JDK中提供的使用自旋锁的方式处理锁竞争CAS …

Elasticsearch02-安装7.x

零、文章目录 Elasticsearch02-安装7.x 1、Windows安装Elasticsearch (1)JDK安装 Elasticsearch是基于java开发的,所以需要安装JDK。我们安装的Elasticsearch版本是7.15,对应JDK至少1.8版本以上。也可以不安装jdk,…

又要考试了

一、实现无名管道练习&#xff1a;父进程写入管道&#xff0c;子进程读取管道数据。 #include<myhead.h> int main(int argc, const char *argv[]) {int fd[2];char buff[1024]"王吕阳&#xff0c;崔庆权别卷了";char s[1024];if(pipe(fd)-1){perror("pi…

Unity添加newtonsoft-json

package name "com.unity.nuget.newtonsoft-json": "3.2.1",打开包管理器 输入包名称和版本 点击添加

HarmonyOS:多线程并发-Worker

Worker主要作用是为应用程序提供一个多线程的运行环境&#xff0c;可满足应用程序在执行过程中与宿主线程分离&#xff0c;在后台线程中运行一个脚本进行耗时操作&#xff0c;极大避免类似于计算密集型或高延迟的任务阻塞宿主线程的运行。具体接口信息及使用方法详情请见Worker…

JMeter配置原件-计数器

一、面临的问题&#xff1a; 由于本人的【函数助手对话框】中counter计数器每次加2&#xff0c;且只显示偶数(如下图所示)&#xff0c;因此借助【配置原件-计数器】来实现计数功能。 如果有大佬知道解决方式&#xff0c;麻烦评论区解答一下&#xff0c;谢谢。 二、配置原件-c…

系统可观测性——Logback日志框架

摘要 Logback是一种Java日志框架&#xff0c;可以提供高度可配置的日志记录功能&#xff0c;包括级别控制和事件过滤等功能。它基于SLF4J&#xff08;Simple Logging Facade for Java&#xff09;日志抽象层&#xff0c;可以与多种流行的Java日志框架兼容&#xff0c;如Log4j和…

【自然语言处理与大模型】使用llama.cpp将HF格式大模型转换为GGUF格式

llama.cpp的主要目标是在本地和云端的各种硬件上以最小的设置和最先进的性能实现LLM推理。是一个专为大型语言模型&#xff08;LLM&#xff09;设计的高性能推理框架&#xff0c;完全使用C和C编写&#xff0c;没有外部依赖&#xff0c;这使得它可以很容易地被移植到不同的操作系…

NVR小程序接入平台EasyNVR设置预置位显示“参数错误”的解决方法

视频监控技术在现代社会中的应用已经变得越来越广泛&#xff0c;从城市安防到家庭安全&#xff0c;从交通管理到商业监控&#xff0c;其作用无处不在。随着科技的不断进步&#xff0c;视频监控不仅提高了安全性&#xff0c;还带来了许多新的机遇和挑战。 近期&#xff0c;我们收…

【MySQL】InnoDB引擎中的Compact行格式

目录 1、背景2、数据示例3、Compact解释【1】组成【2】头部信息【3】隐藏列【4】数据列 4、总结 1、背景 mysql中数据存储是存储引擎干的事&#xff0c;InnoDB存储引擎以页为单位存储数据&#xff0c;每个页的大小为16KB&#xff0c;平时我们操作数据库都是以行为单位进行增删…

达梦查询表字段详细信息脚本(字段名称、描述、类型、长度及是否为空)

达梦查询表字段详细信息脚本&#xff08;字段名称、描述、类型、长度及是否为空&#xff09; 该SQL 脚本&#xff0c;用于查询表中字段的基本信息&#xff0c;包括字段名称、描述、数据类型、数据长度、是否为空及是否为主键等属性。 SQL 脚本 -- 输入变量 DECLAREp_owner VA…

YashanDB共享集群产品能力观测:细节足见功底

本文基于前泽塔数科研发总监-王若楠2024年11月在“2024年国产数据库创新生态大会”-“根”技术专场的演讲整理形成&#xff0c;主要对崖山共享集群YAC的架构、功能、高可用性、性能四大方面进行全面测试&#xff0c;并分享了测试环境和测试结论。 年初&#xff0c;基于某些商业…

[C++]类的继承

一、什么是继承 1.定义&#xff1a; 在 C 中&#xff0c;继承是一种机制&#xff0c;允许一个类&#xff08;派生类&#xff09;继承另一个类&#xff08;基类&#xff09;的成员&#xff08;数据和函数&#xff09;。继承使得派生类能够直接访问基类的公有和保护成员&#xf…

无人机节气门控制技术概述!

一、无人机节气门信号特点 无人机节气门信号主要用于调节无人机的发动机输出功率&#xff0c;其特点主要包括&#xff1a; 高精度&#xff1a;节气门信号需要高精度地反映发动机的转速、功率等状态&#xff0c;以确保无人机能够准确、稳定地飞行。 实时性&#xff1a;无人机…

机器学习之 K-Means

1. 什么是 K-Means&#xff1f; K-Means 是一种常用的无监督学习算法&#xff0c;主要用于聚类分析任务。其目标是将数据集划分为 K 个不同的簇&#xff0c;使得同一簇内的数据点之间的相似性更高&#xff0c;而不同簇的数据点差异更大。K-Means 算法使用了一个简单而有效的迭…

智慧公交指挥中枢,数据可视化 BI 驾驶舱

随着智慧城市的蓬勃发展&#xff0c;公共交通作为城市运营的核心枢纽&#xff0c;正朝着智能化和数据驱动的方向演进。通过整合 CAN 总线技术(Controller Area Network&#xff0c;控制器局域网总线)、车载智能终端、大数据分析及处理等尖端技术&#xff0c;构建的公交“大脑”…

盲盒3.0版h5版-可打包app-新优化版紫色版

整体界面ui美观大气&#xff0c;盲盒项目也是一直比较热门的&#xff0c;各大平台一直自己也有做。 感兴趣的小伙伴可以搭建做自己的项目。盲盒项目的利润率还是很大的。

如何理解符号引用和直接引用?

我们知道在 JVM 中类加载总共使用 5 步组成的&#xff0c;而类的生命周期总共有 7 个阶段&#xff0c;如下图所示&#xff1a; 其中每步的含义如下&#xff1a; 1.加载 加载&#xff08;Loading&#xff09;阶段是整个“类加载”&#xff08;Class Loading&#xff09;过程中…

海康萤石摄像机接入EasyNVR流程:开启RTSP-》萤石视频添加到EasyNVR-》未来支持海康SDK协议添加到EasyNVR

EasyNVR目前支持GB28181、RTSP、ONVIF、RTMP&#xff08;推流&#xff09;这几种协议接入&#xff0c;目前正在增加海康HIKSDK、大华DHSDK等几种SDK的接入&#xff0c;我们今天就介绍一下萤石摄像机怎么通过RTSP接入到EasyNVR。 第一步&#xff1a;萤石摄像机开启 萤石设备默…

【Unity离线渲染器】Octane for Unity 排坑(注册、证书申请、安装)

Unity使用Octane 异常复杂迷惑&#xff0c;官网多数差评就在此&#xff0c;Octane 论坛对unity的讨论已多年未更新。 经过我半天的不屑努力与排错&#xff0c;终于找到一种比较靠谱的方法。 (我用的unity版本是2022.3&#xff0c;估计2017都行&#xff08;不确定&#xff09;&…