转换图片转灰度

把彩色图片变成黑白灰阶,核心是用 BT.601 亮度公式给每个像素算一个灰度值,再把它同时写回红绿蓝三个通道。处理全部在你的浏览器里完成,打开页面就带一张演示图,上传自己的图片也不会离开本地。

原图(演示渐变)
灰度结果

使用方法

  1. 点「选择图片」挑一张本地图片,或直接使用页面打开时自带的演示渐变图。图片不会上传,只在本机浏览器里处理。
  2. 想让结果更亮或更暗,拖动「亮度微调」滑块,范围 −100 到 100,默认 0。每拖动一下都会按当前灰度重新叠加亮度并即时刷新。
  3. 选好「导出格式」:要无损就用 PNG;想压体积就选 JPEG,质量由下方质量滑块控制。点重新灰度化可随时按新参数重算。
  4. 满意后点下载结果,浏览器会把灰度画布导出成对应格式的图片存到你本地。整个过程不调用任何服务器接口。

这个转换图片转灰度工具能解决什么问题

一是快速去色做素材。做 PPT、打印稿、印章底图时经常需要纯灰阶图,本工具一键把彩色压成灰度,比在修图软件里找菜单更快。

二是统一视觉比重。彩色容易让某一块颜色抢眼,转成灰度后能更客观地看构图明暗;设计师常用这招检查对比是否足够。

三是减小体积与兼容。灰度图信息量比彩色少,配合 JPEG 导出能明显变小;老设备、单色屏或某些打印流程也只认灰阶。

本页不做这些事:它不调色相、不裁切、不加水印、不做二值化(纯黑纯白),也不做锐化或降噪;这些请改用图片工具里的调色、裁剪、压缩等专门页面。

灰度算法原理与技术内核

本转换图片转灰度工具对每一个像素独立计算一个灰度值,公式是 灰度 = 0.299 × R + 0.587 × G + 0.114 × B,算完把得到的数字同时写回红、绿、蓝三个通道,像素就变成灰色。之所以三个通道填同一个数,是因为当 R=G=B 时人眼看到的就是中性灰,没有残留颜色。

这一步的技术内核可以拆成六个具体问题:

  1. 调用了哪个函数与公式:逐像素用 0.299*R + 0.587*G + 0.114*B 求值,再用 Math.round 取整到 0–255 整数;系数来自 ITU-R BT.601 的亮度(luma)权重,是标清电视时代定下的标准。
  2. 关键参数为什么取这三个系数:人眼对绿色最敏感、对蓝色最不敏感,所以 G 的权重 0.587 最大、B 的权重 0.114 最小。若改成简单平均 (R+G+B)/3,绿色和蓝色的视觉亮度会被错估,灰阶看起来会偏亮或偏暗。
  3. 遵循哪个标准:系数取自 BT.601(亦称 Rec. 601)的 luma 定义;高清与超高清另有 BT.709、BT.2100 权重,但本工具面向普通图片去色,沿用最通用、兼容性最好的 601 系数。
  4. 输入经过怎样的转换得到输出:先 getImageData 取出每个像素的 R、G、B(和透明度 A),套公式算灰度 g,再把该像素写成 (g, g, g, A);亮度微调是在 g 上再叠加一个 −100 到 100 的整数,最后用 putImageData 写回画布。
  5. 边界与阈值:每个通道是 8 位,合法范围 0–255;叠加亮度后若低于 0 按 0 计、高于 255 按 255 计,避免出现非法颜色值。画布像素总量受浏览器限制,超大图片建议先缩小再处理;公式只有整数乘法与加法,不存在浮点累积误差导致的颜色漂移。
  6. 常见误用的正确解释:第一,「灰度」不是「黑白二值」,本工具保留 256 级灰阶而不是只留纯黑纯白;第二,JPEG 是有损格式,反复导出会慢慢劣化,需要反复编辑请改用 PNG;第三,带透明度(A 通道)的 PNG 转灰度后透明区域仍透明,不会被填成白色或黑色。

完整示例(数值为真实计算结果)

输入范围与像素灰度对照表

下表给出十二种典型颜色的 RGB 与按 BT.601 算出的灰度值(亮度微调为 0),前 12 行直接显示,点「加载更多」展开剩余两行。可导出 CSV(带 BOM)或 JSON(不带 BOM),也可一键复制 TSV。

颜色RGB灰度值(0–255)
纯红255,0,076
纯绿0,255,0150
纯蓝0,0,25529
白255,255,255255
黑0,0,00
黄255,255,0226
青0,255,255179
品红255,0,255105
中灰128,128,128128
棕红192,64,3299
天蓝64,128,200117
橄榄绿100,150,75127
橘粉200,150,100159
蓝紫50,50,20067

边界、精度与常见误用

常见问题

为什么转完的灰色和我在别的软件里看到的不太一样?

不同软件处理转换图片转灰度时用的亮度系数不同:本工具用 BT.601 的 0.299/0.587/0.114,而高清视频常用 BT.709(绿权重更高)。同一张图两种口径会有几级灰的差别,都是「正确」的,只是标准不同。

我还没选图片就有图了,这是我的照片吗?

不是。页面打开时自带一张六色块演示渐变,用来让你立刻看到灰度效果;一旦你选择自己的图片,演示图会被替换,原图不会上传也不会被保存。

转灰度后颜色为什么没完全消失?

灰度图保留 256 级灰阶而不是纯黑纯白,所以你会看到深浅不同的灰,这是正常且预期的;如果你想要纯黑白两色,那是「二值化」而不是「灰度」,本工具不做二值化。

JPEG 和 PNG 该选哪个?

只做一次性去色或要保留最多细节,选 PNG(无损);要发微信、塞进网页、追求小体积,选 JPEG 并把质量调到 80–92 之间通常够用。反复编辑务必用 PNG,避免一次次有损压缩。

亮度微调拉到 +100 后有些地方变成纯白?

这是边界裁剪导致的:原本灰度就高的像素加上 100 会超过 255,被夹到 255 即纯白。属正常行为;想保留层次就把滑块往回拉一些。

带透明背景的 Logo 转完为什么会出问题?

透明区域转灰度后仍透明,显示成什么颜色取决于你把它放在什么背景上。若要白底灰图,请先在原图垫白底再上传,本工具不会擅自填充背景。

导出的 CSV 在 Excel 里中文乱码怎么办?

本页 CSV 已在开头写入 UTF-8 的 BOM,正常用 Excel 打开中文不会乱码;纯文本编辑器开头看到几个乱码字符是 BOM 本身,属正常现象,不影响数据。

我的图片会被上传或保存吗?

不会。从读取到导出全部在浏览器本地完成,不调用任何服务器接口,刷新页面后内存里的图片数据即释放,不会留下副本。

相关工具