GIMP 教程:制作 Duotone 双色调效果

yumo66621小时前技术文章4

今天我们学习如何使用 GIMP 这款强大的开源图像编辑器,制作流行的 Duotone(双色调)效果。

Duotone 效果的核心原理,是将图像的色调信息映射到两种主要颜色上。通常,一种颜色用于图像的亮部,另一种用于暗部。在本教程中,我们将通过以下步骤实现:

  1. 分离主体: 将图像中的主体(人物)与背景分离。
  2. 准备颜色层: 创建一个纯色背景层(例如绿色)和一个纯色叠加层(例如蓝色)。
  3. 去色: 将主体图像转换为灰度图。
  4. 混合: 使用图层混合模式 (Blend Modes),将灰度主体与蓝色叠加层、绿色背景层巧妙地结合起来。
  5. 调整: 使用颜色曲线 (Curves) 微调最终效果,增强对比度和色彩平衡。

这种方法利用了图层和混合模式,是非破坏性的(如果你保留了备份图层),并且易于调整。

现在,让我们一步步开始。

准备工作

首先,你需要一张图片。你也可以使用自己的图片。

打开图片

在 GIMP 中打开你选择的图片。你可以直接将图片拖拽到 GIMP 窗口,或者通过 File -> Open (文件 -> 打开) 来选择文件。

或者在文件管理器中右键点击图片文件,选择 Open With (打开方式),然后选择 GIMP。

添加 Alpha 通道

为了让图层支持透明度(方便我们移除背景),我们需要添加 Alpha 通道。

在右侧的图层面板 (Layers Panel) 中,右键点击你的图片图层,选择 Add Alpha Channel (添加 Alpha 通道)。如果该选项是灰色的,说明你的图片已经有 Alpha 通道了。

Alpha 通道存储了每个像素的透明度信息。没有 Alpha 通道的图层是完全不透明的,删除像素时会用背景色填充;有 Alpha 通道的图层,删除像素后会变成透明。

移除背景 - 使用 Fuzzy Select Tool

我们需要将主体(人物)从背景中抠出来。方法有很多,其中之一就是 Fuzzy Select Tool (模糊选择工具),也就是俗称的“魔棒”。

  1. 在左侧工具箱 (Toolbox) 中,选择 Fuzzy Select Tool。它的图标像一根魔杖。
  2. 在图像的背景区域点击。GIMP 会自动选择颜色相似的连续区域。你会看到选区周围出现闪烁的虚线 ("marching ants")。
  3. 按下键盘上的 Delete 键,或者使用菜单 Edit -> Clear (编辑 -> 清除),删除选中的背景区域。
  4. 重复点击并删除背景的不同区域,直到大部分背景被移除。
  5. 注意:如果 Fuzzy Select Tool 选中了主体的一部分,尝试在背景的其他地方点击,或者调整工具选项中的 Threshold (阈值) 参数。

检查背景移除效果

为了更清楚地看到背景是否完全移除,我们可以添加一个纯色背景。

  1. 取消选择:Select -> None (选择 -> 无) 或者使用快捷键 Shift+Ctrl+A。
  2. 在图层面板右下角,点击 Create a new layer and add it to the image (创建新图层并添加到图像) 按钮。
  3. 在弹出的对话框中,将 Layer Fill Type (图层填充类型) 设置为 White (白色),点击 OK。
  4. 在图层面板中,将这个新的白色图层拖拽到原始图片图层的下方。

现在,白色背景会透过透明区域显示出来,任何残留的背景碎片都会变得很明显。

使用橡皮擦清理边缘

残留的背景碎片或不完美的边缘,可以用 Eraser Tool (橡皮擦工具) 清理。

  1. 在工具箱中选择 Eraser Tool。
  2. 确保在图层面板中选中了你的图片图层 (不是白色背景层)。
  3. 调整橡皮擦的大小 (Size) 和硬度 (Hardness)。
  4. 仔细擦除图片边缘残留的背景像素。
  5. 技巧: 如果不小心擦掉了主体的一部分,按住 Alt 键再用橡皮擦涂抹,可以恢复被擦除的像素 (这实际上是在编辑 Alpha 通道)。

平滑边缘 (可选但推荐)

使用魔棒抠图后,边缘可能有些锯齿。我们可以通过以下步骤平滑边缘:

  1. 选择主体: 右键点击图片图层 -> Alpha to Selection (Alpha 到选区)。这会选中图层中所有不透明的部分。
  2. 收缩选区: Select -> Shrink (选择 -> 收缩)。输入 1 像素,取消勾选 Shrink from image border (从图像边缘收缩),点击 OK。这会将选区向内收缩 1 像素。
  3. 反转选区: Select -> Invert (选择 -> 反转) 或快捷键 Ctrl+I。现在选中的是主体周围 1 像素宽的边缘区域。
  4. 删除边缘: 按 Delete 键或 Edit -> Clear。删除最外层的锯齿像素。
  5. 扩展选区: Select -> Grow (选择 -> 扩大)。输入 1 像素,点击 OK。将选区向外扩展回原来的大小。
  6. 模糊边缘: Filters -> Blur -> Gaussian Blur (滤镜 -> 模糊 -> 高斯模糊)。将 Size X 和 Size Y (水平/垂直半径) 都设置为 1.0 像素,点击 OK。轻微模糊选区边缘,使其更平滑。
  7. 取消选择: Select -> None (选择 -> 无)。

准备 Duotone 图层

  1. 备份图层: 在图层面板中,选中处理好的图片图层,点击 Create a duplicate of the layer (创建图层副本) 按钮。将这个副本图层拖到最下方(白色图层之上),并点击图层左侧的眼睛图标隐藏它。这是一个备份,以防后续操作失误。
  2. 设置背景色: 选中之前创建的白色图层。
  3. 点击工具箱中的前景色色块 (Foreground Color)。
  4. 选择一个亮绿色 #6AFF7F。你可以直接在 HTML notation 输入框中输入这个值。点击 OK。
  5. Edit -> Fill with FG Color (编辑 -> 用前景色填充)。白色背景现在变成了绿色。

图像去色

现在我们需要将主体图像变成灰度图。

  1. 选中可见的图片图层 (不是备份层或背景层)。
  2. Colors -> Desaturate -> Desaturate (颜色 -> 去色 -> 去色)。
  3. 在弹出的窗口中,选择基于 Lightness (亮度) 的模式。点击 OK。

添加并混合第二种颜色 (蓝色)

  1. 选择蓝色: 点击工具箱中的前景色色块。
  2. 选择一个中等或较深的蓝色 #0061AB。点击 OK。
  3. 创建蓝色图层: 点击 Create a new layer 按钮。
  4. 将 Layer Fill Type 设置为 Foreground color (前景色)。点击 OK。这会创建一个纯蓝色的图层,覆盖在灰度图层之上。
  5. 设置混合模式: 选中这个新的蓝色图层。在图层面板顶部的 Mode (模式) 下拉菜单中,选择 Lighten only (仅变亮)。

Lighten only 混合模式会比较当前图层和下方图层的像素,并显示两者中较亮的像素。应用在灰度图上时,蓝色会主要影响灰度图的暗部,亮部则保持原来的灰/白色。

合并图层并最终混合

  1. 合并: 选中蓝色图层,右键点击 -> Merge Down (向下合并)。将蓝色图层与其下方的灰度图层合并,应用 Lighten only 效果。
  2. 最终混合: 选中合并后的新图层。将 Mode (模式) 更改为 Darken only (仅变暗)。


Darken only 混合模式会比较当前图层和下方图层(绿色背景)的像素,并显示两者中较暗的像素。这使得绿色背景能够透过人物图层的亮部显示出来,而暗部则保持之前叠加的蓝色调。

调整颜色曲线

最后一步是微调颜色和对比度。

  1. 确保选中合并后的主图层。
  2. Colors -> Curves (颜色 -> 曲线)。
  3. 你会看到一个带有对角线的方框。这条线代表了图像的色调映射关系(从左到右代表从暗到亮)。
  4. 调整亮部: 点击并向上或向左拖动曲线右上方的点。这会提亮图像的亮部,使其更偏向背景的绿色。
  5. 调整暗部: 点击并向下或向右拖动曲线左下方的点。这会加深图像的暗部,使蓝色更突出。
  6. 你可以点击曲线中间添加新的控制点,创建 "S" 形曲线来增加整体对比度,同时调整亮部和暗部的颜色倾向。根据你的图像和期望效果进行调整。
  7. 调整满意后,点击 OK。

完成


至此,Duotone 效果就基本完成了!你可以根据需要,再使用橡皮擦工具进一步清理边缘。

希望这个教程对你有帮助!如果你有任何问题,欢迎提出。

相关文章

如何在 HTML、CSS 和 JS 中制作明暗模式按钮

我们都见过它们,它们保护我们的眼睛免受所有光线的伤害。 这些是暗模式按钮,这里是如何在 HTML、CSS 和 JS 中创建自己的按钮!我们要做的第一件事是创建 HTML 文件。 我正在使用引导程序使按...

带你看好玩的CSS-霓虹灯按钮(霓虹灯的闪烁怎么设置)

对于前端开发人员来说,css是我们再熟悉不过的朋友的,它就相当于是我们页面的衣服,页面好不好看,就看我们css运用的是否炉火纯青。css学起来简单,但是我们要把它“修炼”到出神入化境界,那这可不是一丁...

分享几个漂亮的宇宙风格的按钮动画效果,让你喜欢上CSS

转载说明:原创不易,未经授权,谢绝任何形式的转载俗话说得好,兴趣是最好的老师。本篇文章搜集了几个漂亮的宇宙风格按钮动画效果的代码,希望它们能够激发你对 CSS 的热爱。作为前端开发者,我们不仅仅是制作...

html button标签用法详解(htmlbutton标签属性)

前端小伙伴们应该对button标签非常熟悉了,今天就来总结下button标签的详细用法,温故知新。HTML 中的 <button> 标签用于创建可点击的按钮。按钮可以包含文本、图像或其他...

点击导航栏按钮切换按钮背景色(点击导航栏切换内容)

解决点击导航栏点击哪个,哪个就高亮变色,其他恢复原状。这里我用的是vue框架和element ui组件库写的。主要就是一个点击事件和一个for循环。HTML <div id="app&...