如何打造惊艳的灰度效果

发布: (2026年1月18日 GMT+8 06:21)
3 min read
原文: Dev.to

Source: Dev.to

引言

在本文中,我们将通过研究灰度、阈值和 S 曲线来创建一种醒目的灰度效果。

演示中我们会把卡拉瓦乔的《召唤马太》转为灰度图。卡拉瓦乔的画作以光影运用著称,我们的目标是在将这幅杰作转为灰度的同时,保留其光影的冲击力。

卡拉瓦乔的《召唤马太》

简单灰度

首先,我们使用 BrushCue 提供的 grayscale 工具。该工具将每个像素从 RGB 转换到 XYZ 色彩空间,提取亮度(Y 分量),并将 X、Z 值设为 0,从而生成灰度图像。

简单灰度版本

虽然技术上是正确的,但这个结果远未达到醒目的效果;对很多人来说图像显得过于灰暗。

使用阈值

为了提升对比度,我们可以使用 Lightness Threshold 工具将颜色推向纯白或纯黑。

颜色阈值版本

这会最大化对比度,但产生一种极端的二值化外观,并非我们想要的效果。我们需要介于普通灰度和完整阈值之间的方案。

使用亮度 S 曲线

S 曲线可以通过将数值拉向 0(黑)和 1(白)来提升对比度,同时保留细节。曲线的输入(x 轴)映射到输出(y 轴);低于 0.5 的值会变暗,高于 0.5 的值会变亮。

原文中的交互组件演示了这一概念。

BrushCue 的 Composition Lightness Curve 操作实现了 S 曲线。你可以通过 High Contrast Grayscale 工具进行实验。

醒目灰度版本

结果显示出暗部和亮部之间的显著差异,同时仍保留了标准灰度图的细节。这种方法为在不失去细微之处的前提下增强灰度图像提供了一个引人注目的思路。

Back to Blog

相关文章

阅读更多 »

SSR vs SPA | 哪个该使用?

本文的目标是指导您在为您的应用选择最佳技术时的决策。当我开始职业生涯时,我使用 JSF JavaServer Faces,一个 MPA…