目前我正在基于一堆用户选择的选项生成图表,并在服务器上呈现以生成png输出文件。然后,生成的png图表将显示在用户系统上的基础系统背景上。
如果图表的plotBackgroundColor具有一些不透明度,用户的基础系统背景当然会显示出来,并将影响图表的显示方式。
这很好,因为用户可以完全控制highcharts plotBackgroundColor和系统背景颜色。
但是现在我想生成一个“独立”的图表,其中实心背景颜色(没有不透明度),它完全代表图表在系统背景上的显示方式。这样,我可以在任何系统上显示该图表,无论目标设备中的系统背景颜色如何,都可以真实地了解用户所看到的内容。
我可以访问用户的系统背景颜色(它可以是位图,或者我可以以某种方式提取“显性”颜色,如果它更容易,则将其用作纯色)。
因此,使用图层的概念,这就像将highcharts plotBackgroundColor与表示系统背景颜色的纯色合并,并将其用作plotBackgroundColor。
或许有一种方法可以更改highcharts渲染器中使用的底层背景“浏览器”颜色,与plotBackgroundColor无关?
我确定这一定有可能吗?
答案 0 :(得分:0)
执行此操作的一种方法是,在我发布更好的答案之前,我所做的只是手动将每个backgroundColor值与底层系统画布颜色相结合,使用{{ {3}}。这基本上只是将一种颜色放在另一种颜色上,并使用算法根据相应的不透明度和rgb值确定组合颜色。
我检查backgroundColor是纯颜色还是线性/径向渐变,如果是后者,我将每种停止颜色与底层颜色分开组合,并根据合并的停止颜色重建渐变。
似乎工作正常,但也许有现成的方法,或者有人可以告诉我如何做得更好......!