【发布时间】:2020-03-18 13:53:52
【问题描述】:
我有一个同时显示的图片列表。它们都在 for 循环中被拾取并添加到列表中。
很遗憾,有些 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 warning: Ignoring bad adaptive filter type
我无法使用此解决方案。
【问题讨论】:
标签: python error-handling pyqt pyqt5 png