python 图像压缩后前端解压_使用Python图像库时,open()是否立即解压缩图像文件?...

简短问题

使用Python图像库时,open()是否立即解压缩图像文件?在

详细信息

我想测量压缩图像(jpeg,png…)的解压时间,因为我读到这应该是一个很好的衡量图像的“复杂性”(一个空白图像将很快被解压缩,一个纯随机图像也将如此,因为它根本不会被压缩,所以最“有趣”的图像应该有最长减压时间)。所以我写了下面的python程序:# complexity.py

from PIL import Image

from cStringIO import StringIO

import time

import sys

def mesure_complexity(image_path, iterations = 10000):

with open(image_path, "rb") as f:

data = f.read()

data_io = StringIO(data)

t1 = time.time()

for i in xrange(iterations):

data_io.seek(0)

Image.open(data_io, "r")

t2 = time.time()

return t2 - t1

def main():

for filepath in sys.argv[1:]:

print filepath, mesure_complexity(filepath)

if __name__ == '__main__':

main()

它可以这样使用:

^{pr2}$

正如你所看到的,我根本没有得到预期的结果,尤其是空白.jpg文件:它应该是“复杂度”最低的文件(解压时间最快)。所以,要么我读到的文章是完全错误的(我真的很怀疑,这是一篇严肃的科学文章),要么皮尔没有做我认为它在做的事情。也许实际的位图转换是在实际需要的时候才完成的?但是为什么open延迟会不同呢?最小的JPG文件当然是空白图像,最大的是随机图像。这真的没有道理。在

注1:当多次运行程序时,我得到的结果大致相同:结果很荒谬,但稳定。;—)

注2:所有图像的大小(宽x高)相同。在

编辑

我只是尝试使用png图像而不是jpeg,现在一切都按预期运行。酷!我刚刚按复杂程度对50幅图像进行了排序,它们看起来越来越“复杂”。我查看了这篇文章(顺便说一句,这是Jean-Paul Delahaye在“Pour la Science”上的一篇文章,2013年4月):作者实际上提到他只使用了无损失压缩算法。所以我想答案是open确实对图像进行了解压缩,但是我的程序没有工作,因为我应该只使用无损算法(png,而不是jpeg)压缩的图像。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值