前几天有个问题是关于「将 CIELab 色彩空间的值,在网页前端显示出来」
其中一个解法是把 CIELab 先转换为 CIEXYZ
再从 CIEXYZ 转为 SRGB
因为个人有研究过 pdf 的档案格式
知道 pdf 可以直接写入 CIELab 的颜色值
刚好现代的浏览器也可以直接预览 pdf
所以想试试看「自己写的转换式」跟「浏览器读取带有 CIELab 颜色的 PDF」呈现的结果是否相同
测试方法为:
产生一个单页的 pdf,将指定的 (L*, a*, b*) 颜色填满整页。用 iframe 在浏览器上显示这个 pdf。将 (L*, a*, b*) 用自己写的转换式换算成 (R, G, B)。建立一个 div 方块,背景色填上刚刚算出的 (R, G, B),并把位置移动到 iframe(pdf) 的中央。比较两者的颜色是否相同。程式 Demo 如下
https://jsfiddle.net/40cd19rf/
当用 (L*, a*, b*) = (40, 50, 60) 测试,在不同浏览器的结果如下:
(左: Firefox, 中: Chrome, 右: Edge, 作业系统 windows 10)
结论:只有 Firefox 的 pdf 区块颜色与其他人不同,转换式应该是可用的。