我正在使用 Electron 开发一个应用程序。我在 Adobe XD 中有一种颜色,例如 rgb(0,55,200)。当我在我的应用程序中设置此颜色时,Electron 会显示不同的颜色:rgb(4,48,193)。
在 Safari 和 Chrome 中也会发生同样的情况,但 Firefox 会显示正确的值。更奇怪的是,使用 Electron 的应用程序 Visual Studio Code 显示正确的值(我打开了 vscode 中的 devtools 并检查了)。
我认为它可能是我的电子版本。Vscode process.versions.electron 是 11.3.0,我的是 11.2.1。我更新到 11.4.4 还是一样。
我在另一台电脑上试过,颜色因不同的因素而不同。
Electron 11.2.1 发生的一件非常奇怪的事情是,虽然网站上的颜色是关闭的,但当将颜色选择器指向 devtools 内的小颜色框时,颜色是正确的。您可以在第二个屏幕截图中看到此框,但屏幕截图来自版本 11.4.4,它没有这种奇怪的行为。
我尝试了所有这些标志,但没有运气:
app.commandLine.appendSwitch('force-color-profile', 'srgb');
app.commandLine.appendSwitch('--disable-color-correct-rendering');
app.commandLine.appendSwitch('disable-features', 'ColorCorrectRendering');
app.commandLine.appendSwitch('disable-color-correct-rendering');
app.commandLine.appendSwitch('enable-color-correct-rendering', 'disabled');
app.commandLine.appendSwitch('--enable-color-correct-rendering=disabled');
app.commandLine.appendSwitch('--enable-color-correct-rendering', 'disabled');
app.commandLine.appendArgument('--enable-color-correct-rendering=disabled');
这不是显示器颜色配置文件的问题
如果我将颜色选择器模式更改为 sRGB,Electron 颜色几乎正确,但 Adobe XD 颜色完全关闭。如果我将显示器颜色配置文件更改为 sRGB,则一切正常。但这不是解决方案,因为我不能要求我的应用程序的用户更改她/他的颜色配置文件。而且,Firefox 和 vscode 运行良好。必须有解决办法。
欢迎任何建议。
谢谢阅读!