You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中如何仅对图片非白色区域(文字/Logo)设置滤镜?

实现仅将非白色区域转为灰色的方法

方案1:Photoshop 批量处理(适合非编程用户)

  • 打开单张目标图片,选择选择 > 色彩范围,用吸管点击白色背景,调整「颜色容差」确保所有白色区域被选中(可通过预览确认),点击确定。
  • 按下Ctrl+Shift+I反选,选中文字和Logo所在的非白色区域。
  • 执行图像 > 调整 > 去色(快捷键Shift+Ctrl+U),此时选中区域会转为灰色,白色背景保持原样。
  • 批量处理:打开窗口 > 动作,新建动作并录制上述操作,随后通过文件 > 自动 > 批处理选择该动作,即可批量处理所有图片。

方案2:Python 脚本批量处理(适合编程用户)

用Pillow库可以精准实现你想要的逻辑,代码如下:

from PIL import Image
import os

def convert_non_white_to_gray(input_dir, output_dir):
    # 创建输出目录
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)
    
    # 遍历输入目录下的图片文件
    for filename in os.listdir(input_dir):
        if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
            img_path = os.path.join(input_dir, filename)
            img = Image.open(img_path).convert("RGBA")
            pixels = img.load()
            
            width, height = img.size
            for x in range(width):
                for y in range(height):
                    r, g, b, a = pixels[x, y]
                    # 判断是否为白色(可根据实际背景调整阈值,适配非纯白的情况)
                    if not (r > 245 and g > 245 and b > 245):
                        # 用标准灰度公式计算灰度值
                        gray = int(0.299 * r + 0.587 * g + 0.114 * b)
                        pixels[x, y] = (gray, gray, gray, a)
            
            # 保存处理后的图片
            output_path = os.path.join(output_dir, filename)
            img.save(output_path)

# 替换为你的输入、输出目录路径
convert_non_white_to_gray("input_images", "output_images")
  • 注意:如果图片背景不是绝对纯白,可调整判断条件中的阈值(比如把245改成240),适配不同的白色背景。
  • 运行前需安装Pillow库:执行pip install pillow

内容的提问来源于stack exchange,提问作者Nattakul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 23:33:14