【发布时间】:2020-01-30 06:21:53
【问题描述】:
我想处理一堆图像(100+),我需要保持它们的纵横比(彼此之间不同),但将它们调整为最大 1000x1000 并且最大文件大小为 100kb。
我已经尝试了“优化图像”包,但我无法获得我想要的结果,因为我不够具体。我也尝试使用 imageio 调整大小,但大小问题仍然存在。我已经阅读了不同的来源和对类似问题的回复,但没有找到这样做的方法。
import imageio
import os
os.chdir("C:\\Users\\abc123\\Pictures\\Resize")
im = imageio.imread("a.jpg")
small = transform.resize(im, (1000,1000), mode="symmetric", preserve_range=True)
理想情况下,我将使用 walk() 方法查找文件夹中的所有图像,将它们调整为 1000x1000,通过填充最终尺寸和调整后图像之间的差异来保持纵横比,最后应用质量降低 0.8 或 0.75,直到文件大小 =
【问题讨论】:
-
您可以在stackoverflow.com/q/13407717/5987找到一半的答案
-
也许这也会有所帮助:stackoverflow.com/a/3008966/5987 如果你将它与
resize()结合使用。 -
您无需编写任何代码,只需在终端中使用 ImageMagick 即可。在单独的目录中复制一些图像并尝试
magick -resize 1000x1000 -define jpeg:extent=100KB *.jpg
标签: python image image-processing image-resizing rescale