Auto-fix corrupt JPEGs PR introduced a bug whereby the f.seek() operation read all of the bytes in the image, resulting in the PIL image having nothing to read upon the .save() operation. Fix was to re-open the image using PIL before saving.modifyDataloader
@@ -873,7 +873,7 @@ def verify_image_label(args): | |||
with open(im_file, 'rb') as f: | |||
f.seek(-2, 2) | |||
if f.read() != b'\xff\xd9': # corrupt JPEG | |||
im.save(im_file, format='JPEG', subsampling=0, quality=100) # re-save image | |||
Image.open(im_file).save(im_file, format='JPEG', subsampling=0, quality=100) # re-save image | |||
msg = f'{prefix}WARNING: corrupt JPEG restored and saved {im_file}' | |||
# verify labels |