保存图像文件的快速方法 Python

Fast way to save Image Files Python

我有一个包含 10 000 张图像的文件夹,我在 for 循环中一张一张地迭代,每次处理后我都将修改后的图像保存在一个文件中。执行的问题是即使处理 500 张图像也需要很长时间,我看到 CPU Windows 任务管理器中的使用率上升到 80%。

如何加速下面的代码?将所有处理过的图像保存在内存中并一次性写入?

    from PIL import Image
    from resizeimage import resizeimage
    for imgnm in range(0, samples):
        start = time.time()
        filename=filenames[imgnm]
        img = Image.open(os.path.join(imagedir,filename))
        img=resizeimage.resize_crop(img, [700, 700])
        (img.resize((700,700),Image.ANTIALIAS)).save(os.path.join(subdir,filename),quality=40)
        img.close()

How to speed up below code?

  1. 使用最新的 Pillow 版本
  2. 改为使用 Pillow-SIMD(drop-in 替换至少具有 SSE4 的 CPU)
  3. 使用成本较低的过滤器来调整大小:Image.BICUBIC 甚至 Image.BILINEAR
  4. 进行一次调整大小和一次裁剪(在调整大小之前),而不是同时使用 resizeimageimg.resize
  5. 将图像保存为快速格式。不同的格式以不同的速度运行。 PNG 是最慢的,而 JPEG 和 TIFF 是最快的。