
突发图像抖动处理方法全解析对图像抖动处理了解不多但看到他人网站上很酷的图像抖动处理效果时总会好奇其实现方法。下面介绍目前对图像进行抖动处理的方法。编辑说明现在这些图片看起来变成了这样画面由一堆小点组成这在文章里会详细介绍。致 Hacker News 读者欢迎各位这篇文章吸引了非常规受众关注有必要补充一些内容一是关于是否算抖动处理的讨论从文章第一句可知并非这方面专家维基百科定义抖动处理类似于印刷中半色调技术之前只知其用于 AM 网格印刷所以想玩玩看二是这是一种低效的图像文件缩小方法小实验和减小文件大小关系不大甚至可能增大只是为尝试特定美学效果三是请勿将我和朋友的照片喂给大语言模型实现效果的代码在文章里自己制作图像喂给 LLM 即可。抖动处理的好处抖动处理不仅让图片超酷还能减少文件大小减少存储需求减轻网站对客户端负载如 Low Tech Magazine 就采用这种方法。粉色图像灵感来源粉色图像灵感源于之前一篇文章当时尝试营造黑白“印刷品”感觉只使用颜色突出重点。旧方法处理后的图像把调色板限制为黑色和粉色“抖动”小点更大。这是怎么回事目标是模拟印刷图像效果屏幕像素可自由设置红、绿、蓝值纸张等印刷介质则不同。要让打印机有限调色板呈现更多颜色错觉有 AM、FM 和混合网格三种方法。AM 网格制作深色区域用大点FM 网格用很多小点。FM 印刷效果点杂乱AM 印刷效果点以可预测模式出现浅色区域点更小。振幅调制点处理不当会出现莫尔条纹有规则规定 AM 印刷中颜色应如何偏移避免干扰FM 网格随机无此问题。在数字图像上模拟 AM 图案通过命令行访问服务器使用 ImageMagick 工具的“convert”命令编辑图像。网上找到创建效果的方法并做调整不敢说清楚每个参数作用。命令大致将图像宽度调整为 800 像素设置颜色模式为 CMYK应用背景填充旋转空白区域并设置高斯模糊过滤噪声分离图像成不同颜色通道放大并扭曲处理最后合并四个通道图像。运行命令后生成的图像与目标效果有相似之处合并前各颜色通道点网格不同设置不同角度放大缩小无奇怪伪影效果不错。增大点大小能更清楚看到变化。编辑通往 CMYK 的完美之路发现实现真正 CMYK 颜色图像的方法虽不利于减小文件大小但看起来很酷。原方法处理后点大小不变数字图像像素红、绿、蓝亮度不同要模拟印刷效果需在合并前将每个通道颜色限制为 2 种。修改命令后生成的图像效果更好。思考是否可用这种图像代替粉色图像粉色图像虽颜色种类多但真正有用的独特颜色少。粉色——旧方法旧方法脚本中-distort SRT值设置为“2旋转”放大颜色得到更大点。运行脚本后转换颜色模式为灰度模式再调整为单色黑色和粉色。放大调整颜色前后图像能看到点大小更有变化但这种方法会损失很多细节后来就不用了。编辑说明现在和“真正的方法”对比新方法真正将颜色限制为 CMYK使四个通道点大小都有变化。粉色——新方法单色想法很酷但在博客和网站其他图片中应用有限需要更多层次感即更多不同粉色通过使用-remap标志实现。对于整体非常亮的图像可能出现问题需手动编辑如提高亮度、饱和度反转颜色重新映射为粉色这可能是调色板问题。这算抖动处理吗从结果看图像可算经过抖动处理尤其是旧方法营造出半色调错觉新方法基本如此准确英文表述是“半色调”。但从处理方法看不算抖动处理或者是计算成本最高、最没必要的抖动处理方式。处理步骤多在旧笔记本上处理大图像可能需 10 秒钟文件大小不算小对压缩算法没好处珍惜时间或想减小图像大小千万别这么做。脚本给出脚本代码用于处理图像将图像颜色限制为一定数量生成较小文件。真正的抖动处理方法展示使用 Floyd - Steinberg 抖动处理的原始图像该文件比新的粉色方法处理后的文件小但比旧方法处理后的文件大。编辑说明对于某些图片真正的方法生成的文件会更小但不是普遍规律。编辑RGB 版本也可用 RGB 代替 CMYK 进行同样处理虽不太能营造“印刷品”感觉但有 RGB 版的 AM 网格效果。发布信息发布于德国爱尔福特。有想法、建议或者想吐槽可联系。