Php 图像大小调整性能比较

Php 图像大小调整性能比较,php,gd,benchmarking,Php,Gd,Benchmarking,我正在保存上传的两张照片。一张是大照片,另一张是拇指 我想知道我是否使用更少的资源从缩小的大照片(比如450*400)中创建照片的拇指副本,或者从原始照片创建拇指副本,可以是3mb,也可以是2500px*等等,或者是一种方式还是六种方式 imagecopyresampled($photo, $source, 0, 0, 0, 0, $photo_width, $photo_height, $width, $height); imagecopyresampled($thumb_photo, $s

我正在保存上传的两张照片。一张是大照片,另一张是拇指

我想知道我是否使用更少的资源从缩小的大照片(比如450*400)中创建照片的拇指副本,或者从原始照片创建拇指副本,可以是3mb,也可以是2500px*等等,或者是一种方式还是六种方式

imagecopyresampled($photo, $source, 0, 0, 0, 0, $photo_width, $photo_height, $width, $height);

imagecopyresampled($thumb_photo, $source, 0, 0, 0, 0, $thumb_width, $thumb_height, $width, $height); // old way

imagecopyresampled($thumb_photo, $photo, 0, 0, 0, 0, $thumb_width, $thumb_height, $photo_width, $photo_height); // new way

将2500x2500图像加载到内存中需要比450x400多得多的内存。比如,+30倍以上


另一方面,如果您已经在加载它,那么您可以重用它,而无需额外的内存使用(除了生成实际的第三个映像所需的内存之外)

将2500x2500图像加载到内存中比将450x400图像加载到内存中需要更多的内存。比如,+30倍以上


另一方面,如果您已经在加载它,那么您可以重用它,而无需额外的内存使用(除了生成实际的第三个映像所需的内存之外)

是的,重复使用调整大小的图像来创建拇指是有意义的,但前提是从内存中删除原始图像:

imagecopyresampled($photo, $source, 0, 0, 0, 0, $photo_width, $photo_height, $width, $height);

imagedestroy($source);

imagecopyresampled($thumb_photo, $photo, 0, 0, 0, 0, $thumb_width, $thumb_height, $photo_width, $photo_height);

是的,重复使用调整大小的图像来创建拇指是有意义的,但前提是从内存中删除原始图像:

imagecopyresampled($photo, $source, 0, 0, 0, 0, $photo_width, $photo_height, $width, $height);

imagedestroy($source);

imagecopyresampled($thumb_photo, $photo, 0, 0, 0, 0, $thumb_width, $thumb_height, $photo_width, $photo_height);

什么?你能把第二段改一下吗?@RyanNaddy从我得到的信息来看,他在问,是加载两张图片更好,还是调整较大的图片的大小来制作大拇指更好!如果你担心的是你的记忆使用问题,并且是你的朋友,那就去尝试并找出答案吧!什么?你能把第二段改一下吗?@RyanNaddy从我得到的信息来看,他在问,是加载两张图片更好,还是调整较大的图片的大小来制作大拇指更好!如果你担心的是你的记忆使用问题,并且是你的朋友,那就去尝试并找出答案吧!