Мне нужен способ обнаружения файлов с поврежденными изображениями в огромной коллекции (десятки тысяч изображений). То, как я это делаю сейчас, - это использовать PIL следующим образом:Найти недопустимые изображения в огромной коллекции
try:
im = PIL.Image.open(f)
# image valid
except:
# image invalid
...
Но это слишком медленно. Для проверки всех файлов потребуется несколько часов.
Есть ли более быстрый способ найти все недопустимые изображения в папке с помощью Python?
imghdr
Недостаточно, к сожалению, потому что он не обнаруживает усеченных изображений.
Не похоже, чтобы это было - вы должны попытаться открыть файл, чтобы определить, урезаны ли данные изображения. – jonrsharpe
Да, наверное. Но я подумал, что есть способ с меньшими накладными расходами на декодирование и что бы то ни было сделано во время Image.open –
Некоторые другие варианты: http://photo.stackexchange.com/questions/46919/is-there-a-tool-to -проверить-на-файл-целостности из-а-серии-оф-изображений – Hugo