半色调技术 - 印刷网点的原理与数字实现
什么是半色调 - 用点的大小模拟连续色调
半色调是通过改变网点(dot)的大小或密度来模拟连续色调(灰度/彩色)的技术。印刷中墨水只有有或无两种状态,半色调使得用单色墨水表现丰富灰度成为可能。
基本原理:
- 人眼在一定距离外无法分辨单个网点,将网点区域感知为均匀灰度
- 网点越大(或越密),该区域看起来越暗
- 网点越小(或越稀),该区域看起来越亮
历史:半色调技术起源于 19 世纪的印刷业,是报纸和杂志能够印刷照片的关键技术。数字时代,半色调仍是所有印刷输出的基础。
术语与单位:半色调的英文为 Halftone,其分辨率以 lpi (lines per inch,每英寸线数) 表示。该技术在 1880 年代发明,是把照片再现到印刷品上的革命性手段。
AM 网点(调幅网点)- 传统印刷标准
AM(Amplitude Modulation)网点通过改变网点大小来表现不同灰度,网点间距固定。是传统印刷的标准方式。
特点:
- 固定间距:网点按规则网格排列,间距(线数/lpi)固定
- 可变大小:亮区网点小,暗区网点大,50% 灰度时网点覆盖面积为 50%
- 网点形状:圆形(最常见)、椭圆形、方形、菱形等
线数(lpi):
- 报纸:85-100 lpi(粗糙纸张,网点可见)
- 杂志:133-150 lpi(铜版纸,网点较细)
- 高品质印刷:175-200 lpi(精细印刷)
与 DPI 的关系:输出设备的 DPI 需要是 lpi 的 2 倍以上才能准确再现网点。150 lpi 印刷需要至少 300 DPI 的输出设备。
网点扩大与制版:CMYK 4 色印刷中各色网线设为不同角度以防止摩尔纹。印刷时油墨在纸上扩散,50% 的网点印后可能看起来像 70%,这称为网点扩大:铜版纸约 15-20%,胶版纸约 20-30%。ICC 配置文件包含网点扩大特性,色彩管理系统会自动补偿。现代 CTP (Computer to Plate) 系统直接由数字数据制版,由 RIP (Raster Image Processor) 把页面数据转换为半色调后用激光烧版。
FM 网点(调频网点)- 现代随机网点
FM(Frequency Modulation)网点通过改变网点密度(间距)来表现灰度,网点大小固定。也称为随机网点或随机半色调。
特点:
- 固定大小:所有网点大小相同(通常 10-30 微米)
- 可变密度:亮区网点稀疏,暗区网点密集
- 无规则排列:网点位置随机分布,无固定网格
优势:
- 无摩尔纹:没有规则网格,不会与图像内容产生干涉
- 细节更好:可表现比 AM 更精细的细节(不受 lpi 限制)
- 无需角度设置:CMYK 各色版无需设置不同角度
劣势:
- 平坦区域可能出现颗粒感(网点分布的随机性)
- 对印刷机精度要求更高(微小网点的稳定再现)
- 中间调区域可能出现不均匀的「沙粒」感
随机网点的定位与第 2 代:FM 网点也称随机网点 (Stochastic Screening),作为克服 AM 网点局限的技术在 1990 年代实用化。由于没有网线角度的约束,扩展色域的 6 色、7 色印刷也更容易实现;代价是中间调容易出现颗粒感 (graininess)。针对这些问题,第 2 代 FM 网点 (Staccato、Sublima 等) 采用网点尺寸可变的混合方式加以改善。
CMYK 半色调角度与摩尔纹防止
彩色印刷使用 CMYK 四色叠印,每色版的半色调网格必须设置不同角度以避免摩尔纹。
标准角度设置:
- C(青):15 度
- M(品红):75 度
- Y(黄):0 度(人眼对黄色最不敏感,角度冲突影响最小)
- K(黑):45 度(人眼最敏感的颜色放在最不显眼的 45 度)
摩尔纹产生原因:
- 两个规则网格叠加时,如果角度差不够大,会产生低频干涉图案
- 30 度的角度差可最大程度减少摩尔纹(C-M 差 60 度,C-K 差 30 度,M-K 差 30 度)
数字图像中的摩尔纹:扫描印刷品时,扫描仪的采样网格与印刷网点产生摩尔纹。解决方法:扫描时使用去网功能(低通滤波),或在后期用频率域陷波滤波去除。
阈值矩阵与网线旋转:最基本的做法是把图像分成小单元 (例如 8x8 像素),将单元内的像素值与阈值矩阵比较来生成网点图案。旋转角度 θ 的网线,先做坐标变换 (x' = x cos θ + y sin θ, y' = -x sin θ + y cos θ) 再查阈值矩阵。用 NumPy 与 Pillow 实现时,先转灰度并把阈值矩阵平铺,halftone = (grayscale > threshold_matrix).astype(np.uint8) * 255 即得二值半色调。若改用 Floyd-Steinberg 等误差扩散做二值化 (阈值固定为 128,把量化误差扩散到周围),可得到接近 FM 网点的随机半色调。
数字半色调效果的创建
在数字图像处理中模拟半色调效果,用于艺术创作、复古风格或印刷预览。
实现方法:
- 阈值矩阵法:类似有序抖动,使用圆形网点形状的阈值矩阵
- 圆点绘制法:将图像分为网格,每个网格单元根据平均亮度绘制不同大小的圆点
- 角度旋转:对网格进行旋转以模拟特定角度的半色调
Python 实现思路:
- 将图像分为 NxN 的块
- 计算每块的平均亮度
- 在每块中心绘制与亮度成比例的圆点
- 圆点半径 = (1 - 亮度) * 最大半径
Photoshop 中的半色调:滤镜 → 像素化 → 彩色半调。可设置网点大小和各通道角度。
印刷输出时的分色:彩色图像的半色调处理需先把 RGB 转为 CMYK,再对 4 个色版分别网点化。简单的补色换算 (C=1-R, M=1-G, Y=1-B) 并不够,实际需要基于 ICC 配置文件的色彩转换。通过 GCR (Gray Component Replacement,灰成分替代) 或 UCR (Under Color Removal,底色去除) 把 CMY 的共通成分替换为 K (黑),可减少油墨用量并改善暗部再现。
陷印与专色:为避免套印偏差露出白边,通常设置 0.1-0.3mm 的叠印,Adobe InDesign 与 Illustrator 提供自动陷印功能。CMYK 4 色无法再现的颜色 (荧光色、金属色、特定品牌色) 使用专色,从 Pantone 或 DIC 色卡指定并以专用油墨印刷。
半色调在现代设计中的应用
半色调不仅是印刷技术,也是一种独特的视觉风格,在现代设计中有广泛的创意应用。
设计应用:
- 复古/波普艺术风格:粗大的半色调网点是 60 年代波普艺术的标志性视觉元素
- 漫画/插画:日本漫画中的网点纸(screentone)是半色调的直接应用
- 渐变替代:在单色印刷中用半色调模拟渐变效果
- 纹理叠加:将半色调图案作为纹理叠加到设计中增加质感
CSS 实现:
- 使用
radial-gradient创建重复的圆点图案 - 配合
mix-blend-mode叠加到图像上 - SVG 滤镜也可实现半色调效果
Web 上的创意用途:鼠标悬停时图像从正常渐变为半色调效果,作为交互反馈。或在深色模式下使用半色调风格的背景纹理。
Web 表现与前沿应用:模仿 1960-70 年代波普艺术或报纸印刷的复古效果,会刻意使用较粗的半色调 (低 lpi)。Web 设计中可用 CSS/SVG 实现:例如 CSS 的 radial-gradient、SVG 的 feTurbulence 与 feDisplacementMap 组合,或活用 mix-blend-mode;也有 HalftonePro 等 JavaScript 库与基于 canvas 的实现。基于 GAN 的方法能高品质地完成传统算法难以实现的「逆半色调」(从半色调图像复原连续调图像)。全彩 3D 打印同样以微细网点图案再现表面色彩。