专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

DisplayP3vsRGB?如何正确使用色值?

  大家好,很高兴又见面了,我是前端进阶,由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!
  DisplayP3vssRGB?如何正确使用色值?前言
  Web上使用的大多数颜色都是sRGB。比如熟悉的rrggbb、rgb(r,g,b)语法指定的CSS颜色,其各个颜色分量以〔0,255〕范围内的值表示。例如,rgb(255,0,0)是sRGB颜色空间中最饱和的纯红色。但是sRGB中的颜色范围,即色域(ColorGamut或ColorSpace),并不包含人类视觉系统可以感知的所有颜色,同时有些显示器可以产生更广泛的颜色范围。
  sRGB(StandardRedGreenBlue)是由Microsoft影像巨擘共同开发的一种彩色语言协议,微软联合爱普生、HP惠普等提供一种标准方法来定义色彩,让显示、打印和扫描等各种计算机外部设备与应用软件对于色彩有一个共同的语言。
  DisplayP3,饱和度明显高于sRGB的色彩
  完全饱和的sRGB(左)和DisplayP3(右)圆锥渐变。在浏览器和支持DisplayP3显示器上查看,右颜色会比左颜色浓
  如今,市场上有许多计算机、移动设备可以显示DisplayP3色域的所有颜色,并且Web平台在过去几年中一直在发展,以允许开发者充分利用这些显示器。
  下图是在色度图上用三角形划出色彩空间所包含的色彩,明显能看出二者在包含色彩范围上的差别,即DisplayP3比sRGB范围更大。
  图片来自:https:www。zcool。com。cnarticleZMTIyNjM2NA。html
  WebKit自2016年一直支持宽色图像和视频,去年成为第一个实现CSSColorModuleLevel4中定义的新颜色语法的浏览器引擎,可以在给定的颜色空间中指定颜色。
  目前为止,也就HTMLCanvas尚未支持广色域颜色。2DCanvasAPI在宽色域显示器普及之前就已引入,但是目前它只处理绘制和操作sRGB像素值。最近一项使用其他颜色空间创建Canvas上下文的提案被添加到HTML标准中,目前WebKit已经提供支持,而本文就从这里展开。1。DisplayP3特征检测浏览器支持
  可以使用一些技术来检测宽色域显示和画布支持是否可用。1。1显示器支持
  要检查显示器是否支持DisplayP3颜色需要使用色域媒体查询。functiondisplaySupportsP3Color(){returnmatchMedia((colorgamut:p3))。matches;}
  目前matchMedia方法已经受到大多数浏览器的原生支持。从下图可知,Chrome从9版本就已提供这个方法。
  matchMedia:媒体查询是否适用于文档的API1。2浏览器画布颜色空间支持
  要检查浏览器是否支持宽色域画布,可以创建一个Canvas并检查生成的颜色空间。functioncanvasSupportsDisplayP3(){letcanvasdocument。createElement(canvas);try{如果支持colorSpace选项,但不满足DisplayP3支持的系统要求(最低macOS或iOS版本)Safari会抛出TypeError。letcontextcanvas。getContext(2d,{colorSpace:displayp3});returncontext。getContextAttributes()。colorSpacedisplayp3;}catch{}returnfalse;}
  如上所示,可以通过获取context。getContextAttributes()。colorSpacedisplayp3的值来判断浏览器是否支持displayp3。1。3CSSColorModuleLevel4语法支持
  检查浏览器是否支持在画布上指定宽色域颜色,可以直接设置颜色并查看浏览器是否支持。functioncanvasSupportsWideGamutCSSColors(){letcontextdocument。createElement(canvas)。getContext(2d);letinitialFillStylecontext。fillStyle;context。fillStylecolor(displayp3010);判断浏览器是否会忽略returncontext。fillStyle!initialFillStyle;}2。在宽色域画布上绘制渲染上下文
  Canvas的getContext方法接受一个选项来设置画布后备存储的颜色空间。canvasidcanvaswidth400height300canvas
  默认颜色空间是sRGB(避免对现有内容进行颜色空间转换的性能开销),也可以使用displayp3。注意:可以使用任何受支持的CSS颜色语法指定填充和描边样式。letposition0;for(letgreenof〔1,0〕){for(letblueof〔1,0〕){for(letredof〔1,0〕){context。fillStylecolor(displayp3{red}{green}{blue});填充样式context。fillRect(position,position,40,40);填充样式position20;}}}
  在sRGB(左)和显示P3(右)画布上用作填充样式的显示P3颜色。左侧的颜色被限制在sRGB色域内
  任何使用画布颜色空间之外的颜色绘图都将被限制,以使其处于色域中。例如,在sRGB画布上用颜色(displayp3100)填充矩形最终将使用完全饱和的sRGB红色。同样,在DisplayP3画布上绘制颜色(rec20200。900。9),在Rec。2020色彩空间中几乎全是洋红色,即使用相近颜色(displayp31。000。923)来填充,因为这是DisplayP3色域中最相似的。constCOLORS〔0f0,color(displayp3010)〕;for(lety20;y180;y20){色域外采用相似颜色填充context。fillStyleCOLORS〔(y20)2〕;context。fillRect(20,y,160,20);}
  sRGB(左)和DisplayP3(右)画布上交错的DisplayP3和sRGB条纹。因限制在色域内,两种绿色阴影在sRGB画布难区分
  广色域颜色可用于所有Canvas绘图基元,比如:作为矩形、路径和文本的填充和描边渐变节点阴影颜色3。sRGB和DisplayP3中的像素操作
  getImageData和putImageData可用于获取和设置宽色域画布上的像素值。默认情况下,getImageData将返回具有画布颜色空间中像素值的ImageData对象,但可以指定与画布不匹配的显式颜色空间,执行转换。letcontextcanvas。getContext(2d,{colorSpace:displayp3});context。fillStylecolor(displayp30。500);context。fillRect(0,0,100,100);letimageData;获取画布颜色空间(显示P3)中的ImageDataimageDatacontext。getImageData(0,0,1,1);console。log(imageData。colorSpace);displayp3console。log(〔。。。imageData。data〕);〔128,0,0,255〕显式获取DisplayP3中的ImageDataimageDatacontext。getImageData(0,0,1,1,{colorSpace:displayp3});console。log(imageData。colorSpace);displayp3console。log(〔。。。imageData。data〕);〔128,0,0,255〕获取图像数据转换为sRGBimageDatacontext。getImageData(0,0,1,1,{colorSpace:srgb});console。log(imageData。colorSpace);srgbconsole。log(〔。。。imageData。data〕);〔141,0,0,255〕
  ImageData构造函数同样采用带有colorSpace键的可选项对象。letcontextcanvas。getContext(2d,{colorSpace:displayp3});创建一个ImageData并用完整的DisplayP3黄色填充letimageDatanewImageData(10,10,{colorSpace:displayp3});for(leti0;i10104;i)imageData。data〔i〕〔255,255,0,255〕〔i4〕;context。putImageData(imageData,0,0);
  当使用不同颜色空间的颜色绘制形状时,ImageData和目标画布颜色空间之间的任何不匹配都会导致putImageData执行转换并可能限制生成的像素。4。序列化画布内容
  CanvasDOM元素上的toDataURL和toBlob方法生成带有画布内容的光栅图像。constcanvasdocument。getElementById(canvas);constdataURLcanvas。toDataURL();toDataURLcanvas。toBlob((blob){},imagejpeg,0。95);JPEGat95quality
  在WebKit中,当在DisplayP3画布上调用时,这些方法会在生成的PNG或JPEG中嵌入适当的颜色配置文件,从而确保保留所有颜色范围。5。绘制宽色域图像
  与putImageData一样,drawImage方法将在绘制颜色空间与画布颜色空间不同的图像时执行所需的任何颜色空间转换。
  putImageData(imageData,dx,dy,dirtyX,dirtyY,dirtyWidth,dirtyHeight)putImageData方法drawImage(image,sx,sy,sWidth,sHeight,dx,dy,dWidth,dHeight)drawImage方法
  img引用的光栅图像使用的任何颜色配置文件,以及视频(无论是视频文件还是WebRTC流)引用的视频中的任何颜色空间信息,都将在绘制到画布时得到恰当处理。这可确保在绘制到色彩空间与显示器(显示P3或sRGB)相匹配的画布时,源图像视频和画布像素看起来相同。6。总结
  本文只是告诉大家什么是DisplayP3?为什么要使用DisplayP3?因为笔者不是这方面的专家,很多内容也就浅尝辄止。但是文末的参考资料提供了大量优秀文档以供学习,如果有兴趣可以自行阅读。参考资料
  https:webkit。orgblog12058widegamut2dgraphicsusinghtmlcanvas
  https:caniuse。com?searchmatchMedia
  https:baike。baidu。comitemsRGB1350619?fraladdin
  https:developer。aliyun。comarticle787589

浅谈RESTfulAPI引导篇(RESTfulAPI是什么?)REST全称是RepresentationalStateTransfer,中文意思是表现层(编者注通常译为表征)状态转化,它首次出现在2000骑了八年的小牛电动车,闲鱼1400元出手,你们觉得卖的值得吗?因为新国标的政策,小牛电动车上的白牌,也在2023年1月1日后到期停用了,也就是意味着上路如果被交警查到,就是非法上路了。也是因为骑了有近八年了,中间除了中控换过一次外,几乎没有什每日python之修复老照片!Hello!!大家吼啊,这里是百科菌的每日python时间,今天要给大家介绍的是基于PILMatplotlibNumpy使用python来简单地实现修复老照片快来看看时光的风采吧!这些小程序,四舍五入省下一个亿!Steam又打折了?AppStore又限免了?Kindle商城上新好书了?不想错过Steam平台的薅羊毛机会?今天小杨给小伙伴们推荐一个能够实时监控这个平台信息的小程序小程序欢喜加库里复出砍276浓眉哥真大腿高效39分湖人胜勇士NBA今日凌晨430,湖人113105战胜勇士。此前勇士5连胜。勇士105113负湖人湖人主力詹姆斯因脚底筋膜伤势拉塞尔因右脚踝扭伤休战,浓眉哥戴维斯单核带队。勇士这边主力全明星球戴维斯我现在感觉非常好,非常有信心在今日的常规赛中,湖人主场113105力克勇士。本场比赛,湖人前锋安东尼戴维斯上场38分钟,25投14中,得到39分8篮板6助攻,赛后他接受了记者采访。戴维斯称赞了球队全场比赛都在戴维斯3986湖人胜勇士,差一场进附加赛今日湖人对阵勇士安东尼戴维斯砍下38分8篮板6助攻带领湖人队以113105战胜勇士队。范德比尔特得到11分13板4助攻,奥斯汀里弗斯得到16分8助攻。勇士队斯蒂芬库里27分2篮板6创业类高层次人才到济南起步区就业最高可奖300万!本科以上应届毕业生最高可申请每月1000元交通补贴3月6日,济南市委市政府召开新闻发布会,介绍济南新旧动能转换起步区人才支持政策。新黄河记者从现场获悉,此次起步区出台的人才支持政策,把产业领军人才青年人才海外人才技能人才作为支持重上海80后夫妻遭质疑,存300万提前退休?是炒作吗?最新回应,每月开销公布近日,上海一对80后丁克夫妇提前退休的视频引发网友关注据悉,陈女士与丈夫目前在上海有300万存款有房有车且无贷款退休以后每天都过着悠闲生活对此,有网友不淡定了300万就放心退休?开陈明民营企业要从三个维度面对动荡的世界企业的本质是创造财富,我们站在企业的角度,还是要回归到企业的本质,去创造财富。01回归企业本质回归企业家精神我们在当今环境下怎么办?我们还是要回归。第一,企业的本质是创造财富,我们3纳米M3首发iMac台积电拟招聘6千人小鹏人脸识别需对车头半跪日报君发自凹非寺量子位公众号QbitAI大家好,今天是3月6日星期一,又是元气满满的一周。新一周的开始,一起来和日报君看看最近科技圈都有哪些新鲜事吧台积电今年计划招聘6000余人年
直到现在,一半的宇宙对于我们来说仍是消失的直到现在,一半的宇宙对于我们来说仍然是失踪或隐藏状态,从未被发现,这不是在谈论暗物质或暗能量,它们分别占我们宇宙的27和68。我说的只是正常的普通物质,它构成了你和我行星恒星和星云大型强子对撞机关机三年维护后再次突破记录欧洲大型强子对撞机(LargeHadronCollider,LHC)重新开机后,仅花几天前导质子束就达6。8万亿电子伏特(TeV)能量,超过2015年的6。5TeV记录。本次新记录靠5美元女装起家,估值6000亿!国内无人知,在美国成被告作者猫哥来源大猫财经最近有家中国服装公司完成了融资,估值高得吓人,达到了1000亿美元,它的竞品快时尚品牌ZARA的母公司西班牙的Inditex,估值才650亿美元左右。两年前,这奶奶这样喂,6个月龄男娃不足10斤!这3大隔代育儿法,需警惕小美孩子做6个月体检时候,孩子体重不到10斤,身高才60cm,医生说身高体重不达标,远远落后于平均水平,已经到了矮小的范围!孩子而且囟门偏大,小脸发白,医生怀疑孩子佝偻病,吓得妈妈太阳系的形成太阳系在鸿蒙状态时,可以看做是星云态。在自身质量重力作用下,不断向中心塌缩。星云态各微观物质是有各自运动方向和转动惯量的。能量守恒定律决定了,角动量产生的旋转能促使了行星的诞生。当泼点冷水当前火爆一时的Vlog神机,没有你想的那么给力现在很流行拍摄Vlog,因为现在是短视频的风口期,很多小伙伴通过拍摄短视频,获得了不菲的收入,甚至比上班收入还要多。比如有一个小女生拍摄短视频,从开始加入到现在才半年多,结果前段时不少富豪都在减持股票,这个企业家却在回购,计划再购八个亿每一个企业的发展都需要不断的创新,而伴随着时间的发展,企业也会不断的进步,那些固步自封的企业,只能在社会的发展当中被淘汰。现在社会上的那些存在的企业,都是经历过不断的发展进步的,而什么是唯美主义?它又回来了?唯美主义(aestheticism)认为美才是艺术的本质,主张生活应该模仿艺术。艺术来到你面前,除了为你带来最高品质的瞬间外,别无其他。唯美主义在轰然结束后,一直被贴上保守的标签,张军让教练组背锅!该请回林丹勤王,他的影响力和能力能帮年轻人今年的重磅羽毛球国际赛事中,汤姆斯杯印度队首进决赛即夺冠,韩国时隔12年再夺尤杯冠军,而中国队表现不尽如人意,汤尤杯均出现爆冷赛果!中国国羽尤杯决赛遗憾丢冠,汤杯40年来第二次止步今夜明晨意大利将迎来月全食意大利部分地区可见据意大利媒体报道,奋斗在意大利综合编译星期一(5月16日)凌晨,美洲非洲和欧亚大陆的一部分地区将看到月全食,在意大利也将可用肉眼观测到。(资料图罗马月全食)报道称,月全食将从意大利越南回忆录从来没有想到有一天我会跨近国门去外国,没想过得事情他就实现了。2017年的夏天,听好多人说越南好玩女孩多,去了就能找到越南女的,但是我听了别人一说我就跟着他们一起去越南玩去了。那时
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网