当前位置:   article > 正文

Qt Python libpng warning: iCCP: known incorrect sRGB p rofile 定位 解决方案

python libpng warning: iccp: known incorrect srgb profile

1.简述

我们使用 Qt 或Python 开发时,有时会到遇

libpng warning: iCCP: known incorrect sRGB profile

在控制台一直打印,需要解决;

2.问题原因:

主要是 libpng 这个库兼容性问题;可以去掉 sRGB 中的 iCCP;

3.定位问题文件:

由于文件较多,可以将所有文件合并到一个文件夹下:再遍历一下有问题的 png 文件,处理一下;

Python:

  1. rom PIL import Image
  2. import os
  3. directory = "C:/test"
  4. def check_iccp_profile(file_path):
  5. try:
  6. # 尝试打开图像文件
  7. with Image.open(file_path) as img:
  8. # 获取图像的信息
  9. img_info = img.info
  10. # 检查图像信息中是否包含 'icc_profile'
  11. if 'icc_profile' in img_info:
  12. # 如果 icc_profile 存在,输出文件路径和相关信息
  13. print(f'发现 ICC 配置文件:{file_path}')
  14. # 这里可以添加进一步的处理,例如打印或保存 icc_profile 的内容
  15. except IOError as e:
  16. # 捕获并打印错误信息
  17. print(f'错误:{file_path} - {e}')
  18. def find_images_with_iccp_warning(directory):
  19. # 遍历目录中的所有文件
  20. for root, dirs, files in os.walk(directory):
  21. for file in files:
  22. # 检查文件扩展名是否为 PNG
  23. if file.lower().endswith('.png'):
  24. file_path = os.path.join(root, file)
  25. check_iccp_profile(file_path)
  26. # 调用函数检查目录
  27. find_images_with_iccp_warning(directory)

输出:

  1. 发现 ICC 配置文件:C:/Users/test/Desktop\b\bcct_disabled.png
  2. 发现 ICC 配置文件:C:/Users/test/Desktop\b\caa_disabled.png

4.方案如下:

1.使用 photoShop 处理:

使用PS打开图片,然后点击编辑,再打开指定配置文件

可以改成,第一个:不对此文档应用色彩管理;网上也有选择最后一个;

改完后,确定保存;

2.使用 Python 程序转一下;(libpng warning: iCCP: known incorrect sRGB profile 警告,问题解决-CSDN博客)

单张:注意路径

  1. import cv2
  2. from skimage import io
  3. image = io.imread(path)
  4. image = cv2.cvtColor(image, cv2.COLOR_RGBA2BGRA)
  5. cv2.imencode('.png',image)[1].tofile(path)

多张:

  1. import os
  2. from tqdm import tqdm
  3. import cv2
  4. from skimage import io
  5. #import os
  6. path = r"你的路径" #path后面记得加 /
  7. fileList = os.listdir(path)
  8. for i in tqdm(fileList):
  9. image = io.imread(path+i) # image = io.imread(os.path.join(path, i))
  10. image = cv2.cvtColor(image, cv2.COLOR_RGBA2BGRA)
  11. cv2.imencode('.png',image)[1].tofile(path+i)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/721958
推荐阅读
相关标签
  

闽ICP备14008679号