У меня есть список картинок, которые отображаются одновременно. Все они подобраны в течение l oop и добавлены в список.
К сожалению, некоторые PNG повреждены. Я не могу заранее сказать, какие повреждены, также нет возможности конвертировать такие PNG.
Должен быть способ игнорировать неисправные PNG и пропускать их.
В настоящее время мой код выглядит следующим образом:
for file in os.listdir(path):
# checking if file is png format
if file.endswith('.png'):
pic = os.path.join(self.path_selected, file)
img_label = qtw.QWidget()
pixmap = qtg.QPixmap(pic).scaledToWidth(img_width)
img_label.setPixmap(pixmap)
self.img_mosaique.layout().addWidget(img_label, img_row_count, img_col_count)
# Adding paths of images to a list
self.img_mosaique.set_image_path(pic)
Как вы можете видеть в настоящее время, я добавляю также неисправные изображения.
Насколько я выяснил, libpng не выдает никаких исключений. Я нашел решение использовать это
try:
Image.open(path).tobytes()
except IOError:
print('detect error img %s' % path)
continue
Источник: предупреждение libpng: Игнорирование неверного адаптивного типа фильтра
Я не мог заставить его работать с этим решением.