libpng warning iCCP 错误处理方法

article/2025/10/1 0:06:11

png图片缺乏某些库,导致损坏,或者多余了一些数据会导致以下报错:

libpng warning: iCCP: known incorrect sRGB profile
libpng warning iccp extra compressed data

一些可能的解决方案:

已有方案

来自:https://blog.csdn.net/qq_37924224/article/details/119181028

libpng 1.6及以上版本增强了ICC profiles检查,所以发出警告。从 PNG 图像中删除 iCCP profiles。

可以先读取,再重新保存:

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

本文提供方案

观察到报错的图片根本无法打开,选择删除对应图片。

文件结构:

- all- train- folder1- img1.png- ....- imgn.png- foler2- ...- test- folder1- img1.png- ....- imgn.png- foler2- ...

实现功能:

重命名文件夹,重命名文件名称(ps: 原来是有中文的),使用convert命令转换png为jpg

import os
import cv2 
import random dir_path = "all/train"def rename_folder():for idx, subdir in enumerate(os.listdir(dir_path)):new_folder = "%s_" % (str(random.randint(0,10000))) + str(idx)whole_subdir = os.path.join(dir_path, subdir)whole_newdir = os.path.join(dir_path, new_folder)# print(f"rename {whole_subdir} to {whole_newdir}")os.rename(whole_subdir, whole_newdir)def rename():# rename filesfor subdir in os.listdir(dir_path):whole_path = os.path.join(dir_path, subdir)for idx, img_name in enumerate(os.listdir(whole_path)):postfix = "png" if img_name.endswith("png") else "jpg"new_img_name = str(idx) + "." + postfixorg_path = os.path.join(whole_path, img_name)new_path = os.path.join(whole_path, new_img_name)#     print(f"rename {org_path} to {new_path}")os.rename(org_path, new_path)def convert_png2jpg():# convertfor subdir in os.listdir(dir_path):whole_path = os.path.join(dir_path, subdir)for img_name in os.listdir(whole_path):img_whole_path = os.path.join(whole_path, img_name)if img_name.endswith("png"):# print(img_whole_path)img = cv2.imread(img_whole_path)cv2.imwrite(img_whole_path, img)os.system("convert %s %s"% (img_whole_path, img_whole_path.replace("png", "jpg")))def main():# run with nohup# 1. rm nohup.out# 2. nohup python convert_png.pyrename_folder()rename()convert_png2jpg()if __name__ == "__main__":main()

这个时候有可能会出现报错:

在这里插入图片描述

这些无法convert的文件就是需要删除的对象,通过正则化方法匹配对应文件, 并删除。

import osdef main():rm_list = greps()rm(rm_list)def greps():import rerm_list = []file = "nohup.out"f = open(file, "r")for line in f.readlines():res = re.findall("`.+'", line)if res:rm_list.append(*res)return rm_listdef rm(rm_list):rm_list = [item.lstrip("`").rstrip("'") for item in rm_list]for item in rm_list:print("rm: ", item)os.system("rm %s" % item)if __name__ == "__main__":main() 

http://chatgpt.dhexx.cn/article/fE690DiK.shtml

相关文章

创建线程提示SCB_CFSR_BFSR:0x04 IMPRECISERR 错误

在RTthread的编程出现了问题 这种问题并不是系统出现的问题,而是在处理自己的函数内部出现了数组越界,内存出现错误导致的。 关键还是自己指针访问的非法访问导致这些问题。遇到问题还是要多检查自己写的接口问题。

无法运行rc.exe(已解决)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言原因解决一:在C:\Program Files (x86)下搜索rc.exe二:右击,打开找到的rc.exe的文件夹然后进入Visual Studio 2019 前言 解决…

RTCP(一): RR--Receiver Reports 接收者报告

RTCP RR的格式 接受者报告的RTCP类型是201,如图1.1所示。 图1.1 reporter ssrc rr报告发送者的ssrc,也就是rtp报文接受者自己的ssrc. reportee ssrc rr报告接受者的ssrc,也就是rtp报文发送者的ssrc. cumulative number of packet lo…

MFC生成错误msado15.tlh(3991):fatal error C1003: 错误计数超过100;正在停止编译

MFC生成过程产生错误msado15.tlh(3991): fatal error C1003: 错误计数超过 100;正在停止编译 1 问题描述 在MFC生成解决方案过程中,当点击工具栏的生成按钮时, 会出现编译错误的情况: msado15.tlh(3991): fatal error C1003: 错…

webrtc编译中的错误解决

webrtc编译记录 错误1:该错误的意思是python的安装路径要和你此时的webrtc源码的编译路径相同。 解决方法:将python的安装路径和webrtc编译源码的路径放在同一个磁盘下。 错误2:Windows 默认不支持文件名或目录名长于260个字符的&#xff…

rvtptcontrol failed

rvtptcontrol failed RVT00-010:子例行程序 rvtooperation()返回错误。 原因:子例行程序 rvtooperation() 返回内部错误。返回的错误信息为: 措施: 请记下此错误编号以及无法读取例程 &routine 中配置文件选项 INV_DEBUG_TRACE 的值”这…

error C2338: /RTCc rejects conformant code错误解决

在编译一个项目时,发现在调试版本时提示这个出错: 1>------ 已启动生成: 项目: simulation2, 配置: Debug Win32 ------1>precompiled.cpp1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\yvals.h(112): error C2338: /RTC…

CSHOP后台设置SMTP发邮件提示 Error: need RCPT command 错误解决

其实错误原因并不是因为此错误,经检测,邮件服务器返回的真实错误是 501 mail from address must be same as authorization user 。只因为同时返回了 503 Error: need MAIL command 和 503 Error: need RCPT command ,而ECSHOP只提示了最后一…

阿里云企业邮箱代理商:foxmal邮件发送RCPT错误怎么办?

阿里云企业邮箱代理商:foxmal邮件发送RCPT错误怎么办? 聚搜云是上海聚搜信息技术有限公司旗下品牌,坐落于魔都上海,服务于全球、2019年成为阿里云代理商生态合作伙伴。与阿里云代理商、腾讯云、西部数码、美橙互联、聚搜云,长期战…

foxmail发生RCPT错误

一, 问题 在前几天来到万达之后电脑要重新装系统,也没管别的就直接装了,然后电脑上所有的东西就没了,在装好之后要安装所需要的软件。安装之后就开始使用,就在使用foxmail的时候遇到问题了,也不知道发生了…

Windows下bat命令启动和关闭jar包

一、启动 这里需要将jar包和bat文件放在同一个目录下 启动命令代码如下 echo off start javaw -jar springboot.jar exit二、关闭 关闭命令代码如下 echo off set port8888 for /f "tokens1-5" %%i in (netstat -ano^|findstr ":%port%") do taskkil…

利用Bat命令批量修改文件名

因为科研需求,需要把文件名规范统一命名。 整体思路: 先获得原始文件名字(带后缀),再导到excel里搞好新名字,构建好Bat的ren函数,完成修改。 具体措施: 1)读取原本文件…

Excel、bat命令批量新建、修改文件或文件名

目录 1.批量新建文件夹2.批量新建文件3.批量提取文件名4.批量重命名文件5.生成目录树 1.批量新建文件夹 打开记事本输入 md 文件;第二个;第三个文件 另存为bat的后缀 双击运行bat文件即可 2.批量新建文件 打开Excel,第一列输入文件名 第二列输入保存路径&a…

windows的bat命令记录

查看防火墙开放端口 首先可以同时按下winr快捷键调出运行菜单,输入cmd命令确定。 点击确定之后进入了命令行的界面,在界面中输入netstat -a的命令。 cd命令 //进入G盘 G://获取帮助 cd /?// 跳转到上一层目录 cd ..// 跳转到其他目录 d://进入到E盘的指定文件夹 cd /d e:\e…

windows10 bat命令获取日期时间

系统版本 win10 英文OS Windows Edition:Windows 10 ProSettings-Language:English(United States) 获取日期命令 完整的日期:date(输出如下图) 裁剪方法:echo %date:~起点位,数据长度% 【英文版】对…

.bat脚本基本命令合集

bat脚本的基本命令语法 一、批处理的常见命令 1、REM 和 :: 2、ECHO 和 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系统设备 8、GOTO 和 : 9、FIND 10、START 11、assoc 和 ftype 12、pushd 和 popd 13、CALL …

bat命令大全

文章目录 一、bat(批处理文件类型)二、命令简介1.基础语法2.关闭或打开回显命令3.定义变量4.调用变量5.已管理员身份执行了命令提示符6.进入指定路径7.防止dos窗口关闭8.延迟执行命令9.输出信息到控制台10.循环11.调用某个bat文件并执行12.打开某个文件夹…

华为性格测试指导

这是华为网测之后性格测试的指导文章,有兴趣的可以看下。主要是以截图的方式显示的FDF文件,不影响查看。PS:一般网测表现的“拼命点”都能过,除非心理确实不适合华为氛围的,那就不要强求了吧。

【软件测试岗面经分享】华为测试工程师面经,已成功上岸

努力不会白费,成功不会白来 关注小编公众号:《阿里大叔说测试》即可获得由小编精心整理好的大厂面试问题和答案并能够在第一时间获取们后续发布的最新分享和面经。 您的关注就是对我们后续创作的最大支持 前言 十分感谢J的投稿,很高兴能向…

华为性格面试的技巧方法

在网上看到有关于华为的比较好的性格测试攻略,转载造福后来人! 1、几个原则必须要遵守 (1)华为喜欢那种喜欢加班的人,所以必须要能吃苦耐劳不计较报酬 (2)华为喜欢中庸,不要表现自己…