取色器(屏幕与图片取色)

在线取色器:从屏幕、图片或粘贴的截图取色,放大镜逐像素定位。输出 HEX、RGB、HSL、OKLCH、Display P3,数值能原样换算回同一颜色,超出 sRGB 和半透明像素会提示。

  • 在浏览器中处理
  • 数据不离开你的设备
  • 免费 · 无需注册
点击按钮启动屏幕取色,再选任意窗口中的一个像素。Esc 取消。EyeDropper API 返回 sRGB 颜色;浏览器提供此 API 时才显示按钮。 打开或拖入图片,也可按 Ctrl+V / ⌘V 粘贴截图。可读格式取决于浏览器。超过 16,777,216 像素的图片先缩小再取样,图片旁会显示处理尺寸。 打开系统颜色选择器。调整颜色时字段同步更新,确认更改后颜色加入最近颜色。 清空颜色字段并关闭图片,同时取消未完成的图片加载和屏幕取色。要删除保存的颜色,请用最近颜色旁的清空按钮。

点击「从屏幕取色」,再点击任意窗口里的任意像素。按 Esc 取消。

任何字段都可输入或粘贴 HEX、rgb()、hsl()、oklch()、color(display-p3 …) 或 CSS 颜色名。识别出有效颜色时,其他格式同步更新,透明度保留。值不是颜色时,其他字段清空、复制停用,状态行说明哪里不对。
格式旁的复制按钮复制该字段的文字。最近颜色下的全部复制按一行一个 HEX 值复制。

把图片拖到这里,或粘贴截图 Ctrl+V / ⌘V 粘贴剪贴板里的图片。支持 PNG、JPEG、WebP、GIF、SVG 等浏览器能显示的格式。
最近颜色 保留最近 16 个不同的 HEX 颜色。点击色块重新应用,列表旁的清空删除保存的颜色。单纯输入颜色不会新增历史。

取到的颜色会出现在这里。

最近 16 次取色和取样大小保存在本浏览器(localStorage)。图片不会保存。

阅读完整使用指南 用 EyeDropper API 拾取屏幕上的任意像素
示例、说明与常见问题 带实际输出的示例、与同类工具的差别,以及常见问题。

Windows 上的截图取色流程

Windows 用户最常见的情况是:浏览器没问题,但要取的颜色在另一个程序里。可以按 PrtSc 把整个屏幕放进剪贴板,或者按 Windows + Shift + S 框选区域,再按 Ctrl+C 复制截图(Microsoft 支持)。回到本页按 Ctrl+V,图片就出现在工具里。Mac 上在截图快捷键里加 Control,例如 Control-Shift-Command-4,截图会存进剪贴板而不是桌面(Apple 支持)。

实例:核对小程序导航栏颜色

微信小程序 app.json 的 window.navigationBarBackgroundColor 类型是 HexColor,文档示例写法是 "#ff00ff"(微信开放文档:全局配置),OKLCH 之类的写法不能用。假设设计规范要求用 WeUI 的品牌绿:WeUI 2.6.26 的样式表里 --weui-BRAND 是 #07c160。对设计稿截图取色,读到 #07c160,HEX 可以直接写进 app.json。

同一个颜色在其他字段是 hsl(148.7, 93%, 39.2%) 和 oklch(71% 0.189 151.2)。很多取色工具把 HSL 取整成 hsl(149, 93%, 39%),换算回去是 #07c060,绿色通道差 1。本工具输出的每个字段都能换算回同一个 HEX:测试按 3 级步长遍历 sRGB 立方体(636,056 种颜色)用工具自己的解析器读回,另用 culori 读回 30,000 个随机颜色,全部一致。

实例:1 像素细节与半透明像素

用一张 2000 × 400 的测试图,红 #ff0000、蓝 #0000ff 两色 1 像素竖条交替。工具按原始分辨率读取,单点取样得到纯红或纯蓝,状态行写明坐标,例如「x 1000、y 200」;3 × 3 平均得到 rgb(85, 0, 170),即一列红、两列蓝。照片和渐变上单个像素有噪点,用平均取样更稳。

PNG 里一个 #1a73e8、alpha 为 10/255 的像素,在 Chromium 的 canvas 里读回 rgba(26, 128, 230, 0.039)。canvas 按 alpha 预乘存储,越透明精度越差,工具会显示 alpha 并加提示。

取到的是哪个颜色空间

  • 屏幕:EyeDropper API 返回 sRGB 的十六进制字符串(MDN)。在 macOS 上,Chromium 会先把取到的显示器颜色换算成 sRGB,再按每通道 8 位取整(skia_utils_mac.mm 的 CGColorRefToSkColor),广色域屏幕上超出 sRGB 的颜色会被截取。
  • 图片:工具把图片画进 sRGB canvas 再读像素。CSS Color 4 规定浏览器要按图片内嵌的色彩配置文件显示(§3.4),没有配置文件的图片按 sRGB 处理(§3.5)。支持 Display P3 canvas 的浏览器(Chrome、Edge 92 起,Safari 15.2 起,Firefox 不支持)会多读一次 P3 值,像素超出 sRGB 时,工具给出提示,并保留 P3 值。例如 color(display-p3 1 0 0) 的 HEX 只能写成 #ff0000。
  • 换算公式取自 CSS Color 4 示例代码,测试与 colorjs.io 对比,误差在 10⁻⁹ 以内。

与同类工具的差异

2026-10-01 在桌面版 Chromium 中用同一组文件实测。StarryTool 在线取色器同样按原图分辨率取色,也有放大镜和方向键微调。差别有两点:它的 HSL 取整,例如 hsl(210, 80%, 50%);透明像素它显示 #1A80E60A,但不提示 RGB 是近似值。imagecolorpicker.com 把条纹测试图缩到 529 × 105 再取色,点哪里都是 #7f007f,原图里没有这个颜色。要比较两个取到的颜色的对比度,用颜色对比度检测器;要从一张图提取整套配色,用图像配色提取。

限制

  • 超过 16,777,216 像素的图片会先缩小再取色(iOS 的 canvas 上限是 4,096 × 4,096,MDN),工具会写明缩小后的尺寸和每个像素平均了多少原始像素。
  • 屏幕取色每次都要点按钮。没有用户点击时,open() 会以 NotAllowedError 拒绝;每次只取一个像素。
  • 能打开的图片格式取决于浏览器,HEIC 只有 Safari 能打开。没有 EyeDropper API 时,也可以用 macOS 自带的数码测色计,或 Windows 的 PowerToys 取色器(Win + Shift + C)。
  • 只输出 HEX、RGB、HSL、OKLCH、Display P3。需要 CMYK、Lab、HSV 时,把 HEX 粘贴到颜色转换器。

FAQ

为什么 Firefox、Safari 和手机上没有「从屏幕取色」按钮?

屏幕取色依赖 EyeDropper API,目前只有桌面版 Chrome、Edge(95 起)和 Opera(81 起)提供,Linux Wayland 下也不可用。其他浏览器里工具会隐藏这个按钮,把「打开图片」设为主按钮:截图后按 Ctrl+V 粘贴,再点击要取的像素。

截图取到的颜色和设计稿标注不一样,是工具算错了吗?

先确认截图没有被缩放或压缩:聊天软件发送的图片常被压缩成 JPEG,边缘颜色会变。其次看设计稿是否用了广色域颜色。工具读取的是浏览器画到 sRGB canvas 上的像素,超出 sRGB 的颜色会被截取,此时工具会提示,并在 OKLCH 和 Display P3 字段保留真实颜色。

HSL 为什么带小数?

取整后的 HSL 大多换算不回原来的颜色。例如 WeUI 主色 #07c160 取整写成 hsl(149, 93%, 39%),实际是 #07c060。工具会写出能换算回同一个 HEX 的最少位小数。

图片会上传吗?取色记录存在哪里?

不会上传。图片只在你电脑上的 canvas 里解码和读取。本浏览器的 localStorage 保存两项:最近 16 次取到的 HEX 和取样大小(单点、3 × 3 或 5 × 5),图片本身不保存;点「最近颜色」旁的「清空」即可删除颜色。

透明 PNG 的像素能取色吗?

能。工具会显示 alpha,并输出带透明度的 HEX,例如 #1a80e60a。canvas 按 alpha 预乘存储颜色,几乎透明的像素 RGB 只是近似值。完全透明的像素没有颜色,工具会直接说明。