从海量图片中删除损坏图像

您所在的位置:网站首页 打开搜索的图片怎么删除啊 从海量图片中删除损坏图像

从海量图片中删除损坏图像

2024-06-09 10:07| 来源: 网络整理| 查看: 265

用python判断图片是否损坏

2017-04-22python

起因

要下载几千张图片,是 jpg 格式的,下下来之后才发现有部分图片 预览不了,显示损坏了。损坏的图片有的只有几个字节,有的和正常图片 有差不多的大小,所以不能根据文件大小来区分。

解决 根据文件头

python 标准库里面有个叫 imghdr 的模块,打开它的源代码 可以看到它是根据文件前面几个字节来判断是哪种格式。所以不行,有些图片有文件头,但是后面缺失了数据,它是无法判断的。

根据文件结束符

网上有说 jpg 尾部是 ff d9 , 我根据它来判断,还是不行,有一部分损坏的图片,它是有结束符的。

用PIL

网上有说用 pil 里面 image 的 verify() 来判断,还是不行,去看了下它的代码,它主要针对的是 png 格式的。后来有人说用load() , 试了下可以。代码如下:

from PIL import Image def is_valid_image(filename): valid = True try: Image.open(filename).load() except OSError: valid = False return valid 总结

要多读好的代码,比如说 imghdr 这是标准库里面的模块,以前从来没听说过,也没去看过它。它的代码很短,也很简单,很适合我们新手学习。 比去网上看别人的文章还要好。网上充满了千篇一律的东西,我们应该好好的看一看标准库里面的代码。先挑简单的来,在慢慢看大一点,复杂一点的模块。学 python 这么久还是新手,主要就是不会思考,不会学习。

在这里我以过来人的身份给大家的忠告是:要读标准库里的源代码。

转自:https://www.dust8.com/2017/04/22/python-broken-image/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3