news 2026/8/21 3:26:38

Fillinger 智能填充脚本实战:让 Illustrator 自动把几百个元素 1 分钟铺满任意形状

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Fillinger 智能填充脚本实战:让 Illustrator 自动把几百个元素 1 分钟铺满任意形状

Fillinger 智能填充脚本实战:让 Illustrator 自动把几百个元素 1 分钟铺满任意形状

【免费下载链接】illustrator-scriptsAdobe Illustrator scripts项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts

Fillinger 是开源项目 illustrator-scripts 里的一个免费 Illustrator 脚本,核心功能是"把一堆元素自动均匀地塞进一个形状里":自动避让、自动留白、随机旋转,几秒完成过去 40 分钟的重复劳动。它适合所有在 Illustrator 里做底纹、包装、海报装饰元素的普通设计师与 UI 从业者——不需要任何编程基础,一个.jsx文件装好即用。

先别急着装:这张决策卡帮你判断要不要用

适合谁经常要把几十上百个小对象(咖啡豆、星星、波点、图标)放进一个轮廓的人;愿意花 3 分钟装脚本、换长期效率的人
不适合谁只放三五个元素、追求每个元素精确位置、完全不能接受随机分布的人;需要逐对象命名管理的场景
🎯解决什么问题在一个形状内自动分布元素:三角剖分算可用区域 → 随机采样 → 距离检测避让 → 从大到小逐批投放,同时保证均匀、无重叠、自然

一句话总结:如果你干过"把 200 个元素一个个拖进形状里"的活儿,它就是为你写的。

一个没人愿意提的真相:为什么手工填充永远做不好

做过地图类信息图的人都知道这种痛:要把几十个景点小图标(相机、咖啡杯、地铁标)均匀铺进一座"城市剪影"轮廓里。手工干这件事,本质上是在同时做三个互相打架的判断——放哪不重叠、留白匀不匀、朝向乱不乱。人眼一次只能盯住一个,于是结果永远是:这边叠成小山,那边空出一大块。

同样一个任务,用 Fillinger 的操作是:画好剪影、放好图标组、全选、回车。几秒后图标自动铺满轮廓,既不越界、也不重叠、留白自然得像人手撒的。手工 40 分钟的工作量,被压缩到 1 分钟内,而且质量稳定——这就是"把判断交给算法"和"用眼睛硬排"的本质区别。

最短上手路径:复制一个文件,改一行路径

安装只有一个动作:fillinger.jsx放进 Illustrator 的脚本目录。先获取文件:

git clone https://gitcode.com/gh_mirrors/il/illustrator-scripts

克隆完成后,在illustrator-scripts目录里找到fillinger.jsx——它是单文件脚本,不依赖项目里任何其他文件(同目录的libraries/AI_PS_Library.js是其他脚本用的,Fillinger 用不到)。然后按你的系统复制到对应位置:

系统安装路径
macOS/Applications/Adobe Illustrator [版本]/Presets.localized/en_GB/Scripts/
Windows(64 位)C:\Program Files\Adobe\Adobe Illustrator [版本] (64 Bit)\Presets\en_GB [或你的语言]\Scripts\

重启 Illustrator,打开任意文档,菜单文件 → 脚本 → fillinger就能弹出面板。想验证脚本是否生效,画个圆、放两个小方块,全选后运行——弹出对话框即安装成功。⚠️ 如果菜单里找不到,多半是路径里带了(64 Bit)或语言文件夹名写错,对照上表核对即可。

它到底怎么"自己找位置":给算法一个生活化解释

Fillinger 改编自 Jongware 的圆填充算法(Alexander Ladygin 重构,脚本顶部注释写明了出处,想深挖的可以直接读fillinger.jsx前 360 行)。它的逻辑可以类比成给食堂打菜区安排餐盘

  1. 先铺桌布:把容器形状三角剖分,切成无数个小三角形拼图,算出"哪些区域能放餐盘";
  2. 按面积撒点:在每个三角形内按面积权重随机取点,保证大区域多撒、小区域少撒;
  3. 挨个试放:每个候选点都检查"离边界够不够远、离已放的餐盘够不够远",不合格就跳过;
  4. 先放大盘、再放小盘:元素按尺寸从大到小分多个批次投放(每批尺寸约为上一批的 2/3),大元素先占位,小元素见缝插针把空隙填满。

所以你完全不用告诉它"放哪里",只需要告诉它**"多大、多密、转不转"**——这就是面板上那三组开关的由来。

面板参数速读:三组开关,一次讲透

对话框是英文的,但每个词都对应一个直觉动作。按"体积 → 密度 → 态度"三个维度记忆,比死记参数名快得多:

分组参数默认值它在背后干什么怎么调
体积Max / Min(Items size in % of total size)10 / 4元素尺寸按容器"对角线参考尺寸"的百分比计算,Max 到 Min 之间按 2/3 比例递减分多批投放Min 调低→填充更细密;Max 与 Min 差距拉开→层次感更强
密度Min distance0元素之间的最小间隔(pt),填 0 允许紧贴越大分布越稀疏,过大(如 >20)会出现大片空洞
密度Resize value70实际元素尺寸与"算法算出的可用空间"之间的比例系数调小→整体收缩、留白多;调大→更饱满,接近撑满
态度Random / By value(Rotate items)RandomRandom 每个元素随机旋转 0–360°;By value 按你填的固定角度旋转有机纹理选 Random;几何底纹选 By value 填 0
收尾The item to fill isOn top决定容器的上下层关系;默认脚本把选中对象中"最靠上"的那个当作容器想让指定对象当容器,勾选As in [Layers]并让它成为第一个选中的对象
收尾Group all items完成后把所有填充元素编进一个组需要整体移动时勾选
收尾Random items当填充源是一个编组时,从组内随机抽取元素,避免千篇一律多元素混排时勾选
收尾Remove the item to fill填充完成后自动删掉容器想要"纯元素阵列"时勾选

几个提升手感的小彩蛋:所有数字框都支持方向键微调——按住 Shift 每步跳 10,按住 Ctrl 每步跳 0.1;在 Max 框按Ctrl + →把数值复制到 Min(反之 Ctrl + ←);按 Enter 执行、Esc 取消;每次关闭窗口,你的配置会自动存到系统文档目录下的LA_AI_Scripts/Fillinger__setting.json,下次打开直接沿用。

三个实战复盘:照着抄参数就行

案例一:城市漫游海报的图标铺装

背景:一张竖版海报,要在"城市剪影"轮廓里铺满 300 个景点图标(相机、咖啡杯、地铁、书店),要求零重叠、留白自然。关键操作:把图标全选后编组 → 剪影放最上层、全选两个对象 → 运行脚本。参数快照

参数取值
Max / Min12 / 4
Min distance2
Resize value70
RotateRandom
Random items / Group all / Remove container全勾

效果:1 分钟内铺满,边缘干净,图标零重叠。勾选 Remove the item to fill 后,剪影自动消失,只剩"图标云",直接可做背景层。

案例二:甜甜圈包装的孔洞避让

背景:要在一个环形(带内孔)的图形里铺满小圆点,但孔洞里绝不能落元素关键操作:把外圈和内孔合并成复合路径(选中两个路径 → 对象 → 复合路径 → 建立),作为容器。参数快照:Max 8 / Min 3 / Min distance 0 / Resize 60 / Random / Remove the item to fill 勾选。

效果:算法把内孔识别为"禁区",元素自动绕开。文字也能这么玩——先把文字转曲(创建轮廓),再选中轮廓当容器,就能在文字内部生成图案。需要留意的是内孔如果方向不对可能识别失败,此时选中复合路径执行一次"反转路径方向"再试。

案例三:UI 界面的克制底纹

背景:给 App 引导页做几何背景,要求整齐克制、不抢前景内容。参数快照:Max 8 / Min 3 /Min distance 8/ Resize 70 / RotateBy value 填 0/ Group all items 勾选。

效果:圆点按固定角度整齐排列、间距均匀,输出是规整的网格感而非随机撒花。想要"大元素点缀 + 小元素铺底"的双层层次,可以跑两遍:先 Max 30 / Min 15 铺大点,再 Max 8 / Min 3 铺细点。

最容易翻车的 6 个瞬间

翻车点一句话解法
只选了一个对象脚本至少需要 2 个对象(1 个容器 + 1 个元素),弹窗会提示 "Please select 2 or more objects"
容器类型不对容器必须是路径或复合路径,弹窗提示 "must be PathItem or CompoundPathItem" 时,先执行 对象 → 扩展外观 再试
容器被识别错默认把"最靠上"的选中对象当容器;不确定时勾选 As in [Layers] 并让容器成为第一个选中的对象
Min distance 调太大超过 20 左右会出现大片空洞;从 0–5 起步,逐步加
Max 设成 100单个元素会撑满整个形状;保守值 10–15 起步
元素太多导致卡顿脚本每批次最多尝试 1000 次投放,复杂度与元素数量正相关;控制在几百个以内最稳,复杂形状分批填充

这笔账值得算:效率与质量对比

任务手工逐个摆放Fillinger 自动填充
300 个元素的背景填充约 40 分钟约 1 分钟
带孔洞的复合形状60 分钟以上2–3 分钟
双层 / 三层纹理叠加90 分钟左右约 5 分钟
多个方案批量出底纹数小时半小时内

真正的差距不在手速,而在三个手工几乎做不到的指标同时达标:均匀性(三角剖分保证全覆盖)、无重叠(逐点距离检测自动避让)、自然度(随机旋转 + 尺寸递减带来的呼吸感)。

不止 Fillinger:把它放进一条脚本流水线

Fillinger 擅长的是"最后一步",前期的元素准备和后期的整理,可以交给同目录下的兄弟脚本(整个脚本集都随仓库一起克隆下来了):

  • randomus.jsx:批量打乱颜色、缩放、透明度,快速生成多样化的填充源;
  • harmonizer.jsx:把零散对象对齐、排序、统一间距,适合清理填充源;
  • replaceItems.jsx:填充完成后批量替换元素类型;
  • transferSwatches.jsx:从其他文档复制色板,统一整套方案的色彩;
  • cropulka.jsx:裁剪超出画板的内容,适合填充后的收尾整理。

完整脚本清单与逐个用法说明都写在仓库根目录的README.md里,它本身就是一份按脚本名索引的说明书。

收尾:从第一次运行开始

Fillinger 不需要额外运行环境、不需要学习脚本语言,一个文件装好,记住"体积、密度、态度"三组开关就能上手。建议今晚就做一件事:画一个圆、丢三个小元素进去、跑一次默认参数——看到进度条走完、元素自动铺满的那几秒,你会明白为什么回不去手工摆放的日子。跑通之后,把每个项目的参数快照记进便签,因为设置会自动保存,下次直接复用即可。

【免费下载链接】illustrator-scriptsAdobe Illustrator scripts项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 3:23:46

Linux进程虚拟内存异常膨胀:匿名映射与内存分配器机制解析

最近在排查一个线上服务的内存泄漏问题时,我遇到了一个非常“诡异”的现象。服务器上某个进程的虚拟内存(Virtual Memory, VSS)占用高得离谱,达到了几十个GB,但实际使用的物理内存(Resident Set Size, RSS&…

作者头像 李华
网站建设 2026/8/21 3:23:46

AI最离谱的不是会思考,而是没人知道它什么时候开始学会了“思考”

人类可能会发现一个尴尬事实:我们把一台机器训练到越来越会写代码、做研究、解决复杂问题,却越来越难回答一个最基本的问题——它刚才到底是怎么做到的?更诡异的是,这些能力并非工程师一条条写进去的。工程师准备数据和算力&#…

作者头像 李华
网站建设 2026/8/21 3:22:27

用冒泡排序实现qsort:深入理解通用排序与函数指针

1. 项目概述:当冒泡排序遇上qsort最近在社区里看到不少朋友在讨论排序算法,特别是关于C语言标准库里的那个“瑞士军刀”——qsort函数。很多人觉得它神秘又强大,但内部原理似乎被封装得严严实实。这让我想起刚入门那会儿,为了彻底…

作者头像 李华
网站建设 2026/8/21 3:21:35

单臂路由与DHCP中继配置详解:神州设备实战与排错指南

1. 项目概述与核心价值“单臂路由”和“DHCP”这两个词,但凡做过企业网或者考过网络认证的朋友都不会陌生。但把它们和“神州路由器”以及“国赛”放在一起,就构成了一个非常经典且极具实战价值的综合实验场景。这个项目模拟的,正是中小型园区…

作者头像 李华
网站建设 2026/8/21 3:21:09

数学建模论文实战:Latex+Matlab+Visio+PPT+Netica五件套

1. 这不是“论文写作课”,而是一套数学建模选手的真实作战手册“数学建模——论文手standpoint”这个标题,乍看像一句口号,实则藏着整条建模竞赛产业链里最硬核、也最容易被忽视的生存逻辑。它不讲模型怎么推,不教算法怎么写&…

作者头像 李华