oLoveTools
调色板实验室

ColorSnap

从任何图片里取出一份真正的调色板,再用手动方式修正它。聚类在感知均匀的色彩空间中进行,取色器精确到像素,而且没有任何数据离开过你的浏览器。

在你按下按钮之前什么都不会跑OKLab 感知聚类取色器、固定与撤销

把图片拖到这里,或点击上传

PNG、JPG、WebP、AVIF、GIF、BMP、HEIC、TIFF 和 SVG — 最大 80 MB,在你的浏览器里读取

调色板

载入一张图片,就能从中构建调色板。

它是怎么工作的

1

带一张图进来

拖进来、选进来、粘贴进来,或者从 oLoveTools 的另一个工具直接送过来。此时还什么都不会跑。

2

先设定好

决定你要几个颜色、采样挖多深,以及哪些色调直接忽略。

3

你说提取才提取

中位切分先把范围收窄,然后 k-means 在 OKLab 里做精修 — 在这个空间里,距离和你眼睛看到的差异是一致的。

4

再用手修

把满意的固定住,把不要的丢掉,算法漏掉的就用取色器自己捡回来。

像你一样看颜色

聚类在 OKLab 里完成,所以不会出现两个看起来一模一样的蓝都被选中、而画面里唯一那抹橙色反被丢掉的情况。

带放大镜的取色器

放大到像素级,悬停看数值,点击就留下。Alt+点击会移除跟你所指颜色最接近的那个色块。

满意的先固定住

锁定一个色块,调色板的其余部分会围绕它重新生成,而不是从头再来、把你已经看中的颜色弄丢。

可读性经过核对

相对白、黑以及其他每个色块的真实 WCAG 2.1 对比度,外加红色盲、绿色盲和蓝色盲的模拟。

100% 在你的浏览器里

不上传、不从 CDN 拉模型、根本没有网络请求。图片只留在这个标签页里,关掉就没了。

真正用得上的导出格式

CSS 自定义属性、SCSS、Tailwind v4 的 @theme 区块、JSON、GIMP 的 .gpl 调色板、SVG 色块,以及一张 PNG 色卡。

colorsnap

一份贴合图片本身的调色板,而不是它的模糊平均值

多数提取工具会先把照片缩成缩略图,再在固定网格里数像素 — 这个过程把相邻的颜色混在一起,还凭空造出原图里根本不存在的色调。ColorSnap 以完整分辨率采样,为每一个被填满的颜色格保留精确的平均值,然后在 OKLab 里对这些格子做聚类;在这个空间中,数值上的距离与肉眼感知到的差异是对应的。差别就在于:一份是四个几乎分不出来的蓝,另一份里真的有角落那抹橙。

在你按下按钮之前什么都不会跑
OKLab 感知聚类
取色器、固定与撤销
WCAG 对比度与色盲检查
七种导出格式
HEIC、AVIF 和 TIFF 也能读

重活跑在主线程之外

像素扫描在 Web Worker 里的 OffscreenCanvas 上进行,所以面对 5000 万像素的照片界面依然跟手。传回来的是一份紧凑的直方图,之后的每一次改动 — 颜色数量、饱和度下限、固定的色块 — 都直接从它上面在毫秒内重新求解,不必再碰原图。

先自动,想手动随时手动

把文件拖进来并不会启动任何计算:在你挑选设置的时候,图片一直在等。你也可以完全跳过自动这一步,从第一次点击就纯手工搭调色板,配合缩放、放大镜、固定和撤销。之后每个颜色都还能改,重新提取时你固定过的颜色也会原样保留。

100% 私密,而且是字面意义上的

没有上传,没有 API,没有从 CDN 取回的模型,也没有针对你图片的任何统计。解码、采样、聚类、导出 — 全部在你的标签页里用浏览器自带的 API 完成。你的图片只存在于内存中,关掉页面的那一刻就消失了。

常见问题

Q我的图片会被发到服务器吗?+

不会。解码、采样和聚类全都通过你浏览器里的 canvas 与 Web Worker API 完成。任何阶段都不存在上传,也没有任何牵涉到你图片的网络请求。

Q我能打开哪些格式?+

PNG、JPG、WebP、AVIF、GIF、BMP 和 SVG 可以直接打开。iPhone 的 HEIC 和 HEIF 会在浏览器里转换,TIFF 同样在本地解码。单个文件上限为 80 MB。你可以拖放、浏览选择、从剪贴板粘贴,或者从 oLoveTools 的其他工具接收图片。

Q为什么不是一放上文件就提取调色板?+

因为设置会改变结果。颜色数量、采样深度和饱和度下限共同决定你会得到什么,在你定好之前就跑,只是白白浪费一遍。图片会等着,按按钮的是你。如果你压根不想用自动这一步,有一个按钮直接带你到取色器。

Q偏差这个数字是什么意思?+

它是在 OKLab 空间里,图片中的颜色与各自被归到的调色板颜色之间的平均感知距离。低于 3 左右,这份调色板就是对图片的忠实描述;高于 6,你看到的只是它的一个粗略印象。加颜色会让它下降 — 这是判断五个色块够不够用的诚实方式。

Q固定一个颜色会怎样?+

被固定的色块会被当成不可移动。当你改变调色板数量或重新提取时,固定的颜色原样不动,剩下的位置围绕它们重新计算 — 所以你永远不会弄丢那个已经看中的颜色。

Q能直接导出到我的项目里吗?+

可以。CSS 自定义属性、SCSS 变量及其映射、Tailwind v4 的 @theme 区块、含 HEX/RGB/HSL/OKLCH 与占比的 JSON、可用于 GIMP、Inkscape 和 Krita 的 .gpl 调色板、SVG 色块、纯文本,以及一张 PNG 色卡。变量名是从颜色本身生成的,所以你拿到的是 --deep-teal 而不是 --color-4。

相关搜索

colorsnap图片取色器从图片提取配色主色调hex 颜色提取css 调色板生成器oklab 调色板wcag 对比度检查tailwind 调色板色盲模拟器
oLoveTools 工具集的一部分
oLoveTools

从任意图片提取配色方案,手动打磨后导出 — 全程在你的浏览器里完成。

© 2026 oLoveTools关于

下一步

将颜色转换为 RGB/HSL Hex to RGB

ColorSnap | 从任意图片提取配色方案,全程在浏览器本地完成

用感知均匀的 OKLab 聚类提取图片主色,用取色器手动打磨,检查 WCAG 对比度,并导出为 CSS、SCSS、Tailwind、JSON、GIMP 或 PNG 色卡。全部在浏览器内运行。

常见问题

我的图片会被发到服务器吗?

不会。解码、采样和聚类全都通过你浏览器里的 canvas 与 Web Worker API 完成。任何阶段都不存在上传,也没有任何牵涉到你图片的网络请求。

我能打开哪些格式?

PNG、JPG、WebP、AVIF、GIF、BMP 和 SVG 可以直接打开。iPhone 的 HEIC 和 HEIF 会在浏览器里转换,TIFF 同样在本地解码。单个文件上限为 80 MB。你可以拖放、浏览选择、从剪贴板粘贴,或者从 oLoveTools 的其他工具接收图片。

为什么不是一放上文件就提取调色板?

因为设置会改变结果。颜色数量、采样深度和饱和度下限共同决定你会得到什么,在你定好之前就跑,只是白白浪费一遍。图片会等着,按按钮的是你。如果你压根不想用自动这一步,有一个按钮直接带你到取色器。

偏差这个数字是什么意思?

它是在 OKLab 空间里,图片中的颜色与各自被归到的调色板颜色之间的平均感知距离。低于 3 左右,这份调色板就是对图片的忠实描述;高于 6,你看到的只是它的一个粗略印象。加颜色会让它下降 — 这是判断五个色块够不够用的诚实方式。

固定一个颜色会怎样?

被固定的色块会被当成不可移动。当你改变调色板数量或重新提取时,固定的颜色原样不动,剩下的位置围绕它们重新计算 — 所以你永远不会弄丢那个已经看中的颜色。

能直接导出到我的项目里吗?

可以。CSS 自定义属性、SCSS 变量及其映射、Tailwind v4 的 @theme 区块、含 HEX/RGB/HSL/OKLCH 与占比的 JSON、可用于 GIMP、Inkscape 和 Krita 的 .gpl 调色板、SVG 色块、纯文本,以及一张 PNG 色卡。变量名是从颜色本身生成的,所以你拿到的是 --deep-teal 而不是 --color-4。

相关搜索

colorsnap, 图片取色器, 从图片提取配色, 主色调, hex 颜色提取, css 调色板生成器, oklab 调色板, wcag 对比度检查, tailwind 调色板, 色盲模拟器