imageSX和imageSY VS getimagesize

时间:2014-08-03 08:26:16

标签: php getimagesize

我很抱歉我的英语不好。 我只需要获得图像的宽度和高度。我必须使用什么样的功能? 我猜imageSX(Y)会更快地使用getimagesize还是我错了?

我使用最新版本的PHP

2 个答案:

答案 0 :(得分:0)

如果您的docs中已定义imagesx(),则可以使用image resource

如果要从文件中获取图像,则应考虑使用imagecreatefromstring()使用图像文件的数据字符串,就像在docs中一样。

答案 1 :(得分:0)

简短答案:

getimagesize ( string $filename [, array &$imageinfo ] )在逻辑上应该更快。

详细答案:

getimagesize()获取大小,一次读取1个文件即可一次成像,这意味着该函数的开销仅为1个文件(经过一些计算),而imagesx()imagesy()都是2个单独的调用,这意味着无论何时对这些功能进行编码,都应考虑读取图像文件并分别测量尺寸。因此,在您的情况下,如果打算同时获得宽度和高度,则使用imagesx() imagesy()可能会花费2个文件读取时间。可以肯定的是,一个程序员不能确定一次或多次调用该函数,因此他/她所能做的就是每次调用该函数时都读取图像。磁盘I / O是运行时最昂贵的项目之一,因此2倍肯定比一次慢。

从内存的角度看,这两个函数都将整个图像都移到RAM中,因此输入的内容并不多,但是对于输出,getimagesize()中的数组肯定大于{{ 1}} int。万一有人担心瞬时内存使用情况...