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

标签 python image image-processing python-imaging-library

我有一个包含 10 000 张图像的文件夹,我在 for 循环中一张一张地迭代,每次处理后我都将修改后的图像保存在一个文件中。执行的问题是即使处理 500 张图像也需要很长时间,我看到 Windows 任务管理器中的 CPU 使用率上升到 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(直接替换至少具有 SSE4 的 CPU)
  3. 使用成本较低的过滤器来调整大小:Image.BICUBIC 甚至 Image.BILINEAR
  4. 执行一次调整大小和一次裁剪(在调整大小之前),而不是同时使用 resizeimageimg.resize
  5. 将图像保存为快速格式。不同的格式以不同的速度运行。 PNG 是最慢的,而 JPEG 和 TIFF 是最快的。

关于python - 保存图像文件Python的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49601934/

相关文章:

python - Pandas :与 TimeGrouper 分组

python - 拆分/提取数据框中的部分列 - python

java - 为什么 Java 不能从 InputStream 正确地重新创建该图像?

jQuery 获取图像的 HTML 作为字符串

MATLAB:从二进制图像中分割单个字母

java - 匹配两个图像

python - 将 RGB 中的随机颜色分配到图像中

python - 如何使用连接删除mysql行

c# - 通过图像列表显示时图像质量下降

algorithm - 代表光的 RGB 颜色的加法混合