GIMP图像处理入门
程序员多少听说过GIMP(GNU Image Manipulation Program)的大名,GTK就是Gimp Tool Kit的缩写,知道它是自由软件中仅有强大到能与Photoshop抗衡的图像处理软件。但和Photoshop一样,GIMP的操作方式有时也让初学者摸不着头脑。这里我们将说明GIMP中的主要方面。
概述
GIMP的强项包括:
- 自由。可以在GPL条款下自由地运行、研究、修改和传播GIMP。
- 跨平台。可运行在GNU/Linux、Microsoft Windows™、Mac OS X™和许多其它操作系统上,并且有包括中文在内的众多语言翻译。
- 可编程。通过编写Perl、Python或Scheme脚本脚本可各种图像处理过程,如批量图像渲染和格式转换。
- 可扩展性。它能通过扩展插件完成各种事情,比如添加对新文件格式的支持和效果滤镜。
- 默认可用。自带必要的图像处理工具,如:
- 图像工具包括画笔、铅笔、喷枪、克隆等工具。
- 变换工具包括旋转、缩放、切变和翻转。
- 选择工具包括矩形、椭圆、自由、模糊、贝赛尔曲线和智能剪刀。
- 支持图层和通道。
- 支持包括 GIF、JPEG、PNG、XPM、TIFF、TGA、MPEG、PS、PDF、PCX、BMP 在内的多种文件格式。
- 精细的质量控制。
- 基于平铺的内存管理使足以处理大图像和同时打开许多图像。
- 对所有涂画工具都使用次像素取样,因而能产生高品质的反锯齿效果。
- 多级撤消/重做
基本操作
图像
图像是GIMP处理的单位,每张图像大致对应于一个文件。
导入图像
要处理图像首先得有图像,以下是导入图像的方法:
- 新建。
- 选菜单“文件”中“新建”
- 选择宽度和高度
- 有需要的话可以在高级选项中选择分辨率、色彩空间、初始填充
- “确定”
- 来自剪贴板
- 选菜单“文件”中“创建”中“从剪贴板”
- 来自屏幕截图
- 选菜单“文件”中“创建”中“屏幕截图”
- 决定截取的区域
- 来自文件系统
- 选菜单“文件”中“打开”
- 选择文件
- 来自网络
- 选菜单“文件”中“打开位置”
- 输入URL
- “打开”
- 分块
- 选“图像”中“变换”中“分块”可把一张图像沿参考线分割为多张图像。
- 另外,可能有来自扫描仪、最近打开和一些插件提供的图像生成功能。
编辑图像
对整个图像进行的编辑有:
- 变换图像。例如竖拍的照片需要旋转后显示方向才正确。
- 选择菜单“图像”中“变换”中的“上下翻转”、“左右翻转”、“顺时针旋转90度”、“逆时针旋转90度”、“旋转180度”
- 缩放图像。例如要制作缩略图。
- 选择菜单“图像”中“缩放图像”
- 选择新的高度和宽度,必要时也可指定插值方法
- “缩放”
- 改变画布大小。例如要加上相框或剪裁图像。除了可以让画布适配图层或选区外,也可以手动设置:
- 选择菜单“图像”中“画布大小”
- 设置新的高度和宽度,还有原来画布内容在新画布中位置,同时可决定改变哪些图层大小
- 自动裁剪。
- 选择菜单“图像”中“自动裁剪”可以去除外围的背景
- 选择菜单“图像”中“积极裁剪”可以去除外围和内部的背景
- 选择菜单“图像”中“自动裁剪”可以去除外围的背景
- 改变色彩模式。如果最终需要的是索引或灰度图像,则在编辑过程中使用相同模式可能更合适。
- 选择菜单“图像”中“模式”中的一个模式,如RGB、灰度和索引
- 对于索引模式会询问生成色板的方法
在误操作或希望比较操作前后时可以使用菜单“编辑”中“撤销”或“重做”功能。如果想撤销或重做多步,则可在菜单“编辑”中开启“撤销历史”。个别绘制操作可以通过“淡出”重新设置对象的不透明度。在希望放弃所有未保存修改则可用“文件”中“恢复”。
导出图像
处理图像后要向人们展示你的作品,有以下方法:
- 打印。如果希望生成纸质作品可以选择打印:
- 选菜单“文件”中“打印”
- 有需要的话作页面设置、图像设置和打印预览
- “打印”
- 保存。如果希望可方便地继续修改,可保存为XCF格式:
- 选菜单“文件”中“另存为”或者“保存”
- 选择要保存到的文件
- 导出。如果希望以电子格式展示:
- 选菜单“文件”中“导出为”或“重写”
- 选择要保存到的文件和格式
- 有需要的话决定导出选项,例如压缩程度
图层
每张图像由若干个图层叠成。而且可以有不同叠的方法。
新增图层的方法有:
- 新建图层。见“图层”中“新建图层”,可设置初始填充为前景色、背景色或透明。
- 复制图层。见“图层”中“复制图层”。
- 来自选区。见“选择”中“浮动”。
- 来自文件系统。见“文件”中“作为图层打开”
- 来自文本。使用文字工具产生的文本框是图层。
有需要的话可以通过“新建图层群组”把图层组织成树状结构。
要选择图层,可以用图层对话框,或者在“图层”中“堆栈”中可以:
- 选择前一图层
- 选择后一图层
- 选择底端图层
- 选择顶端图层
图层对话框可把图层设为不可见(点击眼睛)以便集中考虑个别图层。
图层可以如下定制:
- 在“图层”中“堆栈”,可以改变图层的相对顺序:
- 升高图层
- 降低图层
- 升至顶端
- 降至底端
- 反转图层顺序
- 在“图层”中“变换”,可以:
- 水平翻转
- 水平翻转
- 顺时针旋转90°
- 逆时针旋转90°
- 旋转180°
- 任意旋转
- 位移
- 在“图层”可以改变图层大小:
- 设置图层边界大小
- 图层到图像大小
- 缩放图层
- 剪裁到选区
- 自动剪裁
- 在“图像”中“对齐可见图层”可对齐可见图层。
- 对于文字图层,可以:
- 放弃文字信息转换为普通图层
- 文字对齐到当前路径,这可以让文字沿曲线排版
- 在“图层”中“蒙板”(蒙板用于设定图层不同部分的可见性),可以:
- 增加图层蒙板
- 应用图层蒙板
- 删除图层蒙板
- 显示图层蒙板
- 编辑图层蒙板
- 禁用图层蒙板
- 蒙板到选区
- 把图层蒙板加到选区
- 从选区中减去图层蒙板
- 与选区相交
- 在“图层”中“透明”,可以:
- 增加Alpha通道
- 移除Alpha通道
- 颜色到Alpha
- 半平整
- 阈值
- Alpha到选区
- 添加到选区
- 从选区中减去
- 与选区相交
去除图层的方法有:
- 删除图层。见“图层”中“删除图层”。
- 向下合并。见“图层”中“向下合并”。
- 固定图层。见“图层”中“固定图层”。
- 合并可见图层。见“图像”中“合并可见图层”。
- 平整图像。见“图像”中“平整图像”。
最后指出,叠图层可以选择不同的模式,记$I$下层值,$M$为上层,$E$为合成值(它之后会截断到0到255间):
工具 | 说明 | 例子 |
---|---|---|
正常 | $E=M$ | |
融化 | 通过上层的部分透明区中一些随机洞可看到下层 | |
仅变亮 | $E=\max\{I,M\}$ | |
掩蔽 | $E=255-\frac{(255-I)(255-M)}{255}$ | |
减淡 | $E=\frac{256I}{255-M+1}$ | |
相加 | $E=I+M$ | |
仅变暗 | $E=\min\{I,M\}$ | |
相乘 | $E=\frac{IM}{255}$ | |
加深 | $E=255-\frac{256(255-I)}{M+1}$ | |
覆盖 | $E=\frac{I}{255}(I+\frac{2M}{255}(255-I))$ | |
柔光 | $E=\frac{(255-I)M+R_s}{255}I,R_s=255-\frac{(255-I)(255-M)}{255}$ | |
硬光 | $\begin{cases}255-\frac{(255-2(M-128))(255-I)}{256}&M>128\\\frac{2MI}{256}&M\leq128\end{cases}$ | |
差值 | $E=\vert I-M\vert$ | |
减去 | $E=I-M$ | |
增益提取 | $E=I-M+128$ | |
增益合并 | $E=I+M-128$ | |
相除 | $E=\frac{256I}{M+1}$ | |
色调 | 色调来自上层而亮度和饱和度来自下层 | |
饱和度 | 饱和度来自上层而色调和亮度来自下层 | |
颜色 | 亮度来自下层而色调和饱和度来自上层 | |
明度 | 亮度来自上层而色调和饱和度来自下层 |
选区
我们往往只想编辑图像的一部分而让其它部分维持不变,这时就需要选区。GIMP中的选区实际上是图像的一个特殊的通道,因此属于程度可以从0到255,通常表示选区的虚线是一半属于选区的分界线,“快速蒙板模式”(可通过图像左下角按钮开关)下可更准确地显示选区:属于程度越低越红。
标准的选择工具有:
- 矩形选择。选中这工具后进行拖放会选取从起点到终点直线为(半,如下面首项)对角线的矩形。
- 开始选择后按下
Ctrl
会导致起点成为矩形中心 - 开始选择后按下
Shift
会导致固定宽高比
- 开始选择后按下
- 椭圆选择。选中这工具后进行拖放会选取从起点到终点直线为(半,如下面首项)对角线的矩形的内接椭圆。
- 开始选择后按下
Ctrl
会导致起点成为中心 - 开始选择后按下
Shift
会导致固定宽高比
- 开始选择后按下
- 自由选择。选中这工具后按住左键移动鼠标画出选区边界,然后可以点击以把线段增加到边界,最后
Enter
。- 开始选择后按下
Ctrl
会把线段角度限制到每15度。
- 开始选择后按下
- 模糊选择。选中这工具后点击要选择的目标即可选中颜色接近的相连区域。
- 按颜色选择。选中这工具后点击要选择的目标即可选中颜色接近区域。
- 智能剪刀。选中这工具后点击目标选区边界上部分点后
Enter
,就会根据最大梯度算法自动得出边界并决定选区。 - 前景选择。选中这工具后按住左键移动鼠标把要选择的对象圈起来,然后再按住左键移动鼠标涂画目标对象的内部某些地方,最后
Enter
。
在工具选项对话框中可选择“边缘羽化”(让选区边缘渐进)、边缘平滑(使用边缘更光滑)和一些与工具有关的选项。
在选择之后可以进行调整:
- 并选区,即选取两个选区之并。方法为按着
Shift
选取要加入的区域。 - 交选区,即选取两个选区之交。方法为按着
Ctrl+Shift
选取要交上的区域。 - 差选区,即选取两个选区之差。方法为按着
Ctrl
选择要减去的区域。 - 移动选区。即平移选区,方法是按着
Alt
拖动选区,同时按下Shift
将移动内容。 - 羽化选区,即使选区边界模糊。见“选择”中“羽化”。
- 锐化选区,即使选区边界分明。见“选择”中“锐化”。
- 增长选区,即使选区变大。见“选择”中“增长”。
- 收缩选区,即使选区变小。见“选择”中“收缩”。
- 圆角矩形,即把选区改成圆角矩形。见“选择”中“圆角矩形”。
- 选择边界,即选择当前选区的边界。见“选择”中“边界”。
- 扭曲边界,即扭曲当前选区的边界。见“选择”中“形变”。
- 反转选择,即把属于。见“选择”中“反转”。
- 取消选择,即什么都不选。见“选择”中“无”。
- 选择全部,即选取整个图像。见“选择”中“全部”。
“编辑”中“清除”可清除选区中全部内容。
路径
选中路径工具后:
- 点击即可创建顶点(同时按下
Shift
可增加连通分支) - 拖动线段可弯曲成贝塞尔曲线(同时
Shift
则两端不尖)。 - 拖动手柄可以改变贝塞尔曲线在端点的切方向(同时
Shift
则端点不尖)。 - 拖动顶点可移动顶点
- 按着
Ctrl
接连点击两个顶点可连接它们 - 按着
Ctrl
点击线段可在线段中加入一个顶点 - 按着
Ctrl
拖动顶点可显示手柄(同时Shift
则两个对称) - 按着
Shift+Ctrl
点击线段可删除线段 - 按着
Shift+Ctrl
点击顶点可删除顶点 - 按着
Shift+Ctrl
点击手柄可隐藏手柄 - 同时按下
Alt
可移动连通分支,再同时按下Shift
可移动全部连通分支。
路径与选区可以相互转换,见“选择”菜单。文字图层可以转换为路径,见“图层”中“文字到路径”,这可用于生成艺术字体。此外,许多变换工具可直接用于路径。
涂画
GIMP中可以使用以下工具绘画:
- 油漆桶填充。点击要填充的地方即可填充颜色或图案。
- 按下
Ctrl
会使用背景而非前景颜色填充。 - 按下
Shift
会填充整个选区而非只是颜色相近的区域。
- 按下
- 混合填充。按住左键移动鼠标,放开后即可用前景和背景颜色渐变填充选区。
- 按下
Ctrl
会限制角度。
- 按下
- 铅笔,按住左键移动鼠标即可绘制没有反锯齿的硬笔划,通常只用于小图像。
- 按下
Ctrl
会拾取前景颜色。
- 按下
- 画笔,介于喷枪与铅笔间。
- 按下
Ctrl
会拾取前景颜色。
- 按下
- 喷枪,按住左键移动鼠标即可绘制比较模糊的软笔划。
- 按下
Ctrl
会拾取前景颜色。
- 按下
- 橡皮,按住左键移动鼠标即可移除颜色,没有Alpha通道时则绘制背景色。
- 按下
Ctrl
会拾取背景颜色。 - 按下
Alt
会恢复颜色。
- 按下
- 墨水,按住左键移动鼠标即可绘画纯色的反锯齿笔画。
- 按下
Ctrl
会拾取前景颜色。
- 按下
- 克隆,先按着
Ctrl
点击复制源开始位置,然后按住左键移动鼠标即可用复制源替换鼠标位置内容。常用于移除照片中不和谐内容。 - 透视克隆,先按着
Ctrl
点击复制源开始位置,然后按住左键移动鼠标即可用复制源混入鼠标位置内容。 - 复原,先按着
Ctrl
点击复制源开始位置,然后按住左键移动鼠标即可用企图修复,较大的缺陷可能要多次才能修复。 - 模糊/锐化,按住左键移动鼠标即可减低或增加对比度。
- 按下
Ctrl
会锐化而非模糊。
- 按下
- 涂抹,按住左键移动鼠标即可把前面碰到的颜色混合到后面碰到的颜色。
- 减淡/加深。按住左键移动鼠标即可把颜色减淡或加深。
- 按下
Ctrl
会加深而非减淡。
- 按下
在工具选项对话框中可选择画笔及其大小、宽高比、角度和变化(如可根据压力、速度、方向等等改变颜色、透明度、大小等等),还有不透明度、模式、抖动、和一些与工具有关的选项。另外,涂画时同时按下Shift
会导致画出直线段,同时按下Ctrl+Shift
会导致画出角度为15度倍数的直线段。
值得一提的是,“编辑”菜单中有勾画选区和勾画路径功能可模拟沿选区边界或路径绘画。
以下列出一些画笔头和它们的效果:
变换
以下例子原始图像如:
工具 | 说明 | 例子 |
---|---|---|
对齐 | 用于将一些图层对齐 | |
移动 | 选取模式后拖动可移动图层、选区、路径和参考线。 | |
剪裁 | 拖放后Enter 会裁剪到从起点到终点直线为(半,如下面首项)对角线的矩形。开始选择后按下Ctrl 会导致起点成为矩形中心;开始选择后按下Shift 会导致固定宽高比。 |
|
旋转 | 拖放后即可开始旋转,可以设置轴和角度。按下Ctrl 会限制角度。 |
|
缩放 | 拖放后即可开始缩放,可以设置新的高度和宽度。按下Ctrl 可维持宽高比。 |
|
切变 | 拖放后即可开始切变(如矩形变成平行四边形),可以设置偏移量。 | |
透视 | 拖放后即可开始透视(如矩形变成不规则四边形)。 | |
翻转 | 点击即可翻转。按下Ctrl 会在垂直而非水平方向翻转。 |
|
笼子变换 | 先通过点击给出多边形后移动各顶点可形变多边形,最后Enter 。 |
在工具选项对话框中可选择插值、剪裁和一些与工具有关的选项。另外,涂画时同时按下Shift
会导致画出直线段,同时按下Ctrl+Shift
会导致画出角度为15度倍数的直线段。
颜色
按照图像处理的惯例,我们在大多数例子中用Lena头像作为输入:
自动工具
自动工具可以傻瓜地修正一些常见问题,不妨在用其它工具前先尝试这些工具。
工具 | 说明 | 例子 |
---|---|---|
色度均化 | 调整亮度以求使直方图尽可能平 | |
白平衡 | 通过拉伸RGB三通道来使更多像素接近纯白 | |
颜色增强 | 使饱和度范畴更宽 | |
标准化 | 使最深色处变黑,最浅色处尽可能亮 | |
拉伸对比度 | 增加对比度 | |
拉伸HSV | 增加对比度但保持色度 |
映射工具
工具 | 说明 | 例子 |
---|---|---|
重新整理颜色表 | 用于重排索引图像的颜色表 | |
设置颜色表 | 用于编辑索引图像的颜色表 | |
奇异映射 | 用三角函数改变颜色 | |
颜色交换 | 用于交换两种颜色 | |
渐变映射 | 用当前渐变为图像重新着色 | |
色板映射 | 用当前色板为图像重新着色 | |
旋转颜色 | 用于把一个颜色范围变为另一颜色范围 | |
样本着色 | 用于给黑白照片着色 |
分量工具
分量工具让我们可分别处理各通道:
- 通道合成器。用于混合RGB通道。
- 合成。用于把多个图层分别作为通道合成出图像。
- 分解。用于把一个图像分解为一个有多个图层组成的图像,每层表示原来的一个通道。
- 重新组合。用于把分解图像中修改反映到原来图像上。
信息工具
信息工具让我们查看图像颜色有关的信息:
- 直方图。可显示通道线性或对数直方图。
- 边界均值。用于把边界均值设为前景色
- 色系分析。用于统计颜色数量。
- 平滑色板。创建一个色板,用于火焰滤镜。
其它
工具 | 说明 | 例子 |
---|---|---|
色彩平衡 | 用于调整特定亮度区域的色阶 | |
色调-饱和度 | 用于调整亮度色度和饱和度 | |
单色化 | 用于生成通过颜色玻璃看到的效果 | |
亮度-对比度 | 用于调整亮度和对比度 | |
阈值 | 用于生成黑白图像 | |
色阶 | 可通过调整各通道值的范围来调整曝光 | |
曲线 | 可通过重新映射(点击可增加控制点,拖动可移动控制点)各通道的值实现多种效果,包括调整颜色、对比、亮度 | |
色调分离 | 用于减少颜色数量 | |
去色 | 用于生成灰度效果 | |
反相 | 把色度和亮度都反转 | |
亮度反转 | 把亮度反转 | |
颜色到Alpha | 用于把某种颜色变为透明 | |
组合滤镜 | 用于预览应用多种滤镜后结果 | |
噪点 | 用于修正在PAL或NTSC电视上可能无法正常显示的像素 | |
最大化RGB | 把图像变成只有红绿蓝三种颜色 | |
Retinex | 用于修正光照不良的照片 |
其它工具
- 颜色拾取工具。选中工具后点击图像可把当前的前景色(同时按下
Ctrl
则背景色)设为点击处颜色。另外也可以点击工具箱下方的色板设置颜色。 - 缩放工具。选中工具后点击可放大图像,同时按下
Ctrl
则缩小。另外也可在图像下方输入缩放比例。 - 测量工具。选中工具后拖动可测量起终点连线的长度与角度。
- 按住
Shift
可测量与上一条线的夹角 - 按住
Ctrl
可限制角度 - 按住
Alt
点击测量端点将增加垂直参考线 - 按住
Ctrl
点击测量端点将增加水平参考线 - 按住
Ctrl+Alt
拖动测量线可移动测量
- 按住
- GEGL工具。选“工具”中“GEGL操作”后可以在对话框中选择许多操作和选项,但其实多数已经出现在滤镜菜单。
- 参考线。一些迷信黄金比例之类的人可能需要参考线辅助构图。在“图像”中“参考线”可以:
- 新增参考线
- 按百分比新增参考线
- 按选区新增外接参考线
- 移除全部参考线
- 网格。在“图像”中“配置网格”可以设置网格密度,注意网格默认不显示,但可在“查看”中开关。
- 图像属性。在“图像”中“图像属性”中可查看图像属性如大小、分辨率、色彩。
- 剪贴板。“编辑”中提供了以下功能
- 剪切当前图层选区内容
- 复制当前图层选区内容
- 复制可见选区内容
- 粘贴为新图层中浮动选区
- 粘贴到图层
- 粘贴为新图像、图层、画笔或图案。
- 缓冲区。相当于一系列剪贴板。在“编辑”中“缓冲区”子空间提供了同样的“命名剪切”、“命名复制”、“命名复制可见”、“命名粘贴”。
- 宏。选菜单“滤镜”中的“Python-Fu”或“Script-Fu”中“控制台”可以对GIMP进行编程控制。
定制GIMP
- 定制窗口。
- 开关单窗口模式。菜单“窗口”中“单窗口模式”。
- 打开对话框。菜单“窗口”中“可停靠对话框”中有各种对话框:
- 图像结构相关的对话框
- 图层对话框
- 通道对话框
- 路径对话框
- 选区对话框
- 颜色表对话框
- 直方图对话框
- 导航对话框
- 撤销历史对话框
- 图像内容相关的对话框
- 颜色对话框
- 画笔对话框
- 图案对话框
- 渐变对话框
- 色板对话框
- 动态绘图对话框
- 字体对话框
- 图像管理相关的对话框
- 缓冲区对话框
- 图像对话框
- 文档历史对话框
- 模板对话框
- 其它对话框
- 工具选项对话框
- 工具预设对话框
- 设备状态对话框
- 错误控制台
- 样本点对话框
- 指针对话框
- 图像结构相关的对话框
- 隐藏或取消隐藏全部停靠对话框。菜单“窗口”中“隐藏停靠”。
- 菜单“查看”中可以:
- 决定是否让屏幕每个像素对应于一个图像像素
- 决定是否紧贴
- 开关全屏
- 配置颜色显示滤镜
- 决定是否显示选区、图层边界、参考线、网格、采样点
- 是否吸附到参考线、网格、画布边缘、当前路径
- 决定衬垫颜色
- 决定是否显示菜单、标尺、滚动条和状态栏
- 定制输入设备。菜单“编辑”中“输入设备”。
- 定制快捷键。菜单“编辑”中“快捷键”。
- 开关模块。菜单“编辑”中“模块”。
- 定制长度单位。菜单“编辑”中“单位”。
- 其它选项。菜单“编辑”中“首选项”。
- 环境
- 界面
- 主题
- 帮助系统
- 工具选项
- 工具箱
- 默认图像
- 默认网格
- 图像窗口
- 外观
- 标题和状态栏格式
- 显示
- 色彩管理
- 输入设备
- 输入管理器
- 窗口管理
- 文件夹
这里虽然介绍了GIMP的主要功能,但最大的问题在于结合这些功能实现预期的效果,这要求的更多是艺术感而不是技术。另外,熟练运用快捷键和编写脚本是每个GIMP(以致任何其它软件)熟练用户的重要特征,而我们在这里由于倾向新手而没有强调。有关GIMP的更多信息,请参见文档。最后指出,GIMP主要用于处理位图,处理矢量图的话可以用Inkscape。