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

如何获取PNG图片总亮度值及批量处理文件夹内图片的方案

计算PNG图片总亮度及批量处理方案

一、单张PNG图片总亮度计算

依赖准备

先安装Python的Pillow图像处理库:

pip install pillow

核心实现

采用行业常用的感知亮度计算公式(两种主流可选,根据场景选择):

  • BT.709标准(适合数字显示场景):亮度 = 0.2126*R + 0.7152*G + 0.0722*B
  • BT.601标准(适合打印场景):亮度 = 0.299*R + 0.587*G + 0.114*B

代码示例:

from PIL import Image

def calculate_total_brightness(image_path, use_bt709=True):
    # 打开图片并转为RGB模式(避免RGBA等格式干扰)
    img = Image.open(image_path).convert('RGB')
    total_brightness = 0
    
    # 选择亮度计算系数
    r_coeff, g_coeff, b_coeff = (0.2126, 0.7152, 0.0722) if use_bt709 else (0.299, 0.587, 0.114)
    
    # 遍历所有像素计算总亮度(优化版,比逐个坐标遍历更快)
    for r, g, b in img.getdata():
        total_brightness += r_coeff * r + g_coeff * g + b_coeff * b
    
    return total_brightness

# 测试单张图片
if __name__ == "__main__":
    total = calculate_total_brightness("test.png")
    print(f"单张图片总亮度: {total:.2f}")

二、文件夹内PNG批量处理

基于上面的单张处理函数,扩展实现批量遍历文件夹内所有PNG图片,结果保存到文本文件:

import os

def batch_process_folder(folder_path, output_file="brightness_results.txt"):
    # 创建结果文件并写入内容
    with open(output_file, 'w', encoding='utf-8') as result_file:
        # 遍历文件夹内所有文件
        for filename in os.listdir(folder_path):
            # 只处理PNG格式(忽略大小写)
            if filename.lower().endswith('.png'):
                file_full_path = os.path.join(folder_path, filename)
                try:
                    # 计算总亮度
                    total_bright = calculate_total_brightness(file_full_path)
                    # 写入结果
                    result_file.write(f"{filename}: {total_bright:.2f}\n")
                    print(f"已完成: {filename}")
                except Exception as e:
                    # 捕获处理失败的情况
                    result_file.write(f"{filename}: 处理失败 - {str(e)}\n")
                    print(f"处理出错: {filename} - {str(e)}")

# 批量处理示例
if __name__ == "__main__":
    batch_process_folder("你的文件夹路径")

补充说明

  • 如果需要平均亮度,只需将总亮度除以图片总像素数:average_brightness = total_brightness / (img.width * img.height)
  • 关于亮度公式的选择:没有统一共识是因为不同场景对亮度的感知需求不同,上述两种标准均为行业广泛认可的方案,按需选择即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:03:35