贝利信息

JavaScript如何实现图像处理_JavaScript Canvas如何调整图片亮度与对比度

日期:2025-12-26 00:00 / 作者:紅蓮之龍
JavaScript Canvas API 可通过 getImageData() 获取像素数组并实时调整亮度与对比度:亮度为 RGB 同加偏移量并截断;对比度用 (value−128)×factor+128 公式计算,需确保图像跨域安全且已加载。

JavaScript 中通过 Canvas API 可以直接操作图像像素,实现亮度与对比度的实时调整,无需后端或第三方库。

获取图像像素数据

使用 ctx.getImageData() 读取画布上图像的原始 RGBA 像素数组。该数组是按行优先排列的一维 Uint8ClampedArray,每 4 个元素代表一个像素(R、G、B、A)。

调整亮度(Brightness)

亮度调整本质是对 R、G、B 三个通道统一加减偏移量。偏移量范围通常为 -255 到 +255,超出 [0, 255] 时自动截断(Uint8ClampedArray 自动处理)。

调整对比度(Contrast)

对比度调整基于公式:value = (value - 128) * factor + 128,其中 factor > 1 增强对比,0

写回画布并显示

修改完像素后,用 ctx.putImageData() 将新数据渲染到画布。为防止模糊或缩放失真,建议: