图片滤镜与效果,免费

应用滤镜,调整亮度、对比度、饱和度等。

您的文件永不离开您的设备

将图片拖到此处

或点击浏览 · JPEG、PNG、WebP、GIF、BMP、AVIF 等

「图像滤镜」对您的像素究竟做了什么

图像滤镜是对每个像素执行的数学运算。本工具中的每个滤镜都对应一种特定的变换。亮度 150% 将每个颜色通道乘以 1.5(上限封顶),使整张图像变亮。对比度 150% 围绕中点拉伸数值,将暗部像素拉向更暗、亮部像素拉向更亮。饱和度 在保持整体亮度的同时,将颜色推向或远离灰色。色相旋转 将每种颜色围绕色环按选定角度旋转。棕褐色调 应用固定的 3x3 矩阵,把 RGB 映射为暖棕色调色板(R' = 0.393R + 0.769G + 0.189B,G' 和 B' 也有类似公式)。灰度 按 ITU-R BT.601 系数(0.299、0.587、0.114)将每个像素压缩为其亮度加权平均,这与人眼感知明暗所用的权重相同。模糊 是高斯卷积:每个输出像素是周围像素的加权平均。反相 翻转每个通道:c' = 1 减去 c。

本工具的每个预设都是这些操作的命名组合。「Vivid」叠加高对比度和高饱和度;「黑白」将灰度设为 100%;「棕褐」将棕褐设为 100% 并降低饱和度;「暖调」加入棕褐色调和温和饱和度;「冷调」将色相旋转向蓝色;「复古」降低对比度和饱和度同时略微加暖;「戏剧」强力推高对比度和饱和度;「淡化」柔化对比度并略微提亮。在底层,每个预设只是写入一个不同的 CSS 滤镜字符串。您可以从任何预设出发,调整单个滑块以找到您想要的精确效果。

这里的所有滤镜都通过浏览器标准化的 CSS 滤镜函数(W3C Filter Effects Module Level 1)实现,自 2016 至 2019 年起在每个现代浏览器中都通过 GPU 实现。预览随着您拖动滑块实时更新,因为运算在显卡上计算而非在 CPU 上。下载步骤会把滤镜结果按原始图像尺寸烘焙到新的 PNG、JPEG 或 WebP 中,因此导出的文件已经带有应用后的外观;不需要单独的渲染步骤。

本工具的工作原理

滤镜引擎是浏览器的 Canvas API 与 CSS 滤镜函数的组合。当您拖入一张图片时,浏览器内置的解码器将文件(JPEG、PNG、WebP、GIF、BMP、AVIF 或 SVG)转换为内存中 HTMLImageElement 上的原始像素。这些像素被绘制到 <canvas> 元素上。要应用滤镜,工具设置 ctx.filter = 「brightness(150%) contrast(110%) saturate(120%) sepia(20%) ...」 并重新绘制源图像;浏览器在 GPU 上应用滤镜链,画布显示结果。

预设是存储在脚本中的预定义滤镜字符串。「黑白」是 grayscale(100%) contrast(105%)。「复古」可能是 sepia(35%) saturate(75%) contrast(95%) brightness(102%)。选择一个预设会把其中一个字符串写入画布的滤镜;然后各个滑块更新以匹配,您可以从那里微调。「按住对比」临时设置 ctx.filter = 「none」 并重新绘制原始图像,松开时恢复所选滤镜。

下载步骤把源图像按原始尺寸(而不是屏幕预览尺寸)重新绘制到一个应用了当前滤镜的新画布上,然后 canvas.toBlob() 把结果导出为新的 PNG、JPEG 或 WebP。输出的像素数据中已烘焙滤镜效果,因此接收者无需工具状态即可看到相同的外观。整个过程中没有任何内容离开标签页;滤镜本身不加载任何库。

照片滤镜简史

图片滤镜的原理

图片滤镜通过修改照片的像素值来改变外观。亮度调整整体明暗,对比度控制明暗区域的差距,饱和度决定颜色的浓度。色相旋转在色环上移动所有颜色,而棕褐色和灰度将图片转为经典色调。模糊应用高斯平滑,反色则翻转所有颜色。

此工具使用浏览器原生的 CSS Canvas 滤镜引擎,GPU 加速以获得实时性能。所有处理均在本地完成 · 您的图片从不发送到服务器。

常见用途

真实世界的滤镜工作流

常见陷阱及其含义

隐私:图像从不离开您的设备

每个基于云的照片滤镜服务(Pixlr、Fotor、BeFunky、各种「在线 Instagram 滤镜」网站)都把您的照片上传到运营商的服务器,在他们的硬件上应用滤镜,然后把滤镜后的图像作为下载发回。照片即使在滤镜后也常带有敏感元数据:照片拍摄地的 GPS 坐标、相机和设备信息、拍摄日期和时间,以及照片内容本身,其中常包含面孔、地点、内部界面截屏或其他可识别材料。大多数运营商发布隐私政策,承诺一两个小时内删除上传并在传输中加密,最大的几家持有 ISO/IEC 27001 认证。他们有强烈的商业动机来履行这些政策。但「一小时内删除」不等于「从未被看见」。在那一小时里,图像内容就在运营商的基础设施内,对任何拥有正确权限的进程或人员都可访问,并按运营商的保留政策出现在日志和备份中。

本滤镜工具从不上传任何内容。整个流水线(文件选择、通过浏览器内置解码器解码、通过 GPU 的 Canvas 滤镜、通过浏览器编码器的可选下载)都在您的浏览器标签页内运行,使用 JavaScript 和标准化的 CSS Filter Effects API。没有上传,没有携带图像数据的网络请求,没有日志条目。您可以在施加滤镜前打开浏览器开发工具的「网络」标签来验证:没有任何带图像内容的请求离开。唯一的网络流量是页面本身的初始加载;不为滤镜操作下载任何库。在页面加载后把浏览器切到飞行模式,滤镜工具仍可继续在本地图像上工作。

何时另一个工具才是正确选择

常见问题

滤镜会降低图片质量吗?

滤镜在全分辨率下应用,不会造成质量损失。下载时,图片以原始尺寸并内嵌滤镜导出。JPEG 导出使用 92% 质量以获得极佳的保真度。

可以同时使用多个滤镜吗?

可以。8 个调整滑块可以同时生效。您也可以先选择一个预设,然后微调个别滑块,以获得想要的效果。

「按住对比」有什么作用?

按住「按住对比」按钮时,预览会暂时显示未加滤镜的原图。松开后恢复到已加滤镜的版本。方便快速对比前后效果。

我的图片会被上传到某处吗?

不会。所有滤镜处理都使用浏览器内置的 Canvas API。您的图片完全保留在您的设备上,绝不会发送到服务器。

其他常见问题

为什么我的图像在极端设置下看起来像色调分离?

因为数学没有余地。每个颜色通道只有 256 个可能数值(8 位 RGB 中的 0 至 255)。把亮度或对比度推到远超原始范围之外会裁切到 0 或 255,而不是保留优雅的渐变。结果是色带(应该平滑过渡的部分出现可见台阶)和色调分离(区域塌缩为单一颜色)。修复方法:拉回最极端的滑块,或如果有的话从更高位深的源开始(RAW 或 16 位 TIFF,在保留位深的桌面工具中编辑)。

我能保存自定义预设吗?

在本工具的界面里不能直接保存。但滑块数值本身就是您的「预设」:记下八个数字(亮度、对比度、饱和度、棕褐、灰度、色相旋转、模糊、反相),您就能在几秒钟内对任何未来照片重现该外观。对于希望在批次上保持相同外观的多照片工作流,这种手动方式在大约 5 至 10 张照片以内可行;超出后,Photoshop、Lightroom、Capture One 或带保存预设包的 VSCO 才是合适的工具。

滤镜顺序重要吗?

对大多数滤镜,不重要:先亮度后对比度与先对比度后亮度产生相同输出。亮度、对比度、饱和度、棕褐、灰度、色相旋转和反相的 CSS 滤镜函数彼此都可交换。模糊是例外:在颜色变化前应用的模糊影响原始边缘;之后应用的模糊影响偏色后的边缘,两者输出可见地不同。实际上,本工具按固定顺序应用所有滤镜,因此只有在您试图复制另一种使用不同顺序的工具的精确效果时这个问题才重要。

这个工具能离线工作吗?

可以。CSS 滤镜引擎、Canvas API 以及 JPEG、PNG、WebP、GIF、BMP 和 AVIF 的解码器/编码器都内置于每个现代浏览器。滤镜不下载任何外部库。在页面本身首次加载后,只要页面留在浏览器缓存中,后续访问完全离线工作。在首次访问后开启飞行模式并对本地图像施加滤镜来验证。

下载的图像会保留 EXIF 元数据吗?

不会。基于 Canvas 的重编码会丢弃 EXIF(相机、镜头、曝光、GPS、拍摄日期)、XMP、IPTC 元数据块以及嵌入的 ICC 色彩配置文件。下载的图像只携带像素数据。对于社交媒体共享,这通常是好事(GPS 坐标和相机序列号不会泄露)。对于元数据重要的归档或摄影工作流,请使用像 Photoshop 或 Lightroom 这样在导出时保留元数据的桌面编辑器。

有桌面或命令行的等效工具吗?

有几个。对于批量自动化,ImageMagick 的 -brightness-contrast-modulate 和相关运算符可从任何 shell 应用相同的变换。Node.js 中的 Sharp 有完整的调整 API。Python 中的 Pillow 提供 ImageEnhance.BrightnessImageEnhance.ContrastImageEnhance.Color 和类似的类。对于交互式桌面工作,Photoshop、Lightroom(专业标准)、Affinity Photo、GIMP 和 Pixelmator Pro 都提供相同的操作以及用于选择性编辑的图层蒙版。

相关工具