Python 如何在1ms内使用PIL调整一个图像的大小?

Python 如何在1ms内使用PIL调整一个图像的大小?,python,image,Python,Image,我想用PIL在python中调整图像大小。 但我发现通过PIL需要70毫秒。 原始图像是1080*1920,我想把它改成500*500。 你能告诉我如何快速做出改变吗 这是我的密码 from PIL import Image img = Image.open('/your iamge path/image.jpg') import time start=time.clock() img = img.resize((500, 500), Image.ANTIALIAS) end =t

我想用PIL在python中调整图像大小。 但我发现通过PIL需要70毫秒。 原始图像是1080*1920,我想把它改成500*500。 你能告诉我如何快速做出改变吗

这是我的密码

 from PIL import Image

 img = Image.open('/your iamge path/image.jpg')
 import time
 start=time.clock()
 img = img.resize((500, 500), Image.ANTIALIAS)
 end =time.clock()
 print end-start

我在这方面做了一些广泛的工作。长话短说,Python和PIL的速度不足以在1ms内完成这项工作。尝试使用Go with the fantastic Govips库

示例来自:


使用python调整图像库大小:

from PIL import Image

img = Image.open('/your iamge path/image.jpg') # image extension *.png,*.jpg
new_width  = 500
new_height = 500
img = img.resize((new_width, new_height), Image.ANTIALIAS)
img.save('output image name.png') # format may what u want ,*.png,*jpg,*.gif

对于1920*1080像素的图像,您可以使用通常的1920*1080*3整数。调整大小最简单的算法是拉伸每个像素或删除像素

因此,要拉伸图片,您仍然需要访问几乎每一个像素,这样您就可以访问100多万个像素,然后再访问100万个像素(取决于调整大小的分辨率,可能更多,也可能更少)

即使在接近硬件的地方操作,达到1毫秒也会非常快。Python通常比其他编程语言慢一些,因为速度不是它主要关心的问题

因此,最好的选择是寻找一个全C的库来完成这项工作,并用python包装它


编辑:

好的,图书馆真的很近

只需使用filter Image.NEAREST调整图片大小。例如:

img = Image.open("the picture")
w = 500
h = 500

img = img.resize((w,h),Image.NEAREST)

如果你把图片拉伸到很大程度(因为过滤机制是最原始的),它显然会很难看,但它很快:从1920*1080到500*500,我花了2.4毫秒

这非常广泛。我建议添加更多关于基准测试、需求和整个任务的信息,因为这涉及到很多复杂的东西,包括延迟与带宽等。这可能很明显。所以我想你不需要经验丰富的用户的帮助吗?不,不,好的,我会说得更详细一些。你不会仅仅用Python来调整1080x1920的图像大小。Python是一种解释语言。设定现实的目标,或者使用一种不需要解释的语言。(不,我们不能推荐您应该使用的工具或库,请参阅关于工具或库的建议。)但它需要70mscheck out这个链接博客url不正确。点击这里:goo.gl/xnbzel和所有其他好的python库都可以在C/C++中使用。python的论点在这里不成立。你能给我一些关于C库的建议吗?@Beili:不,库的推荐在这里是不合适的。做你自己的研究。好的,我会做我的研究\@Sudix,我的测试需要30毫秒。你能举个例子吗?这是对问题的评论,不是答案。答案是自我维持的,这里有相关信息。非站点链接应该只是额外的资源,但如果该非站点位置不可用,则答案仍然有用。这个答案不符合这些标准。
img = Image.open("the picture")
w = 500
h = 500

img = img.resize((w,h),Image.NEAREST)