将图像缩放到新的宽度并保持质量和长宽比

时间:2020-02-23 11:45:52

标签: php

我需要缩放文件夹(images323)中的所有图像;
所有图像的宽度小于960px
它们应具有新的宽度960px-并保留qualityaspect ratio

我遇到错误:-imagescale() expects parameter 1 to be resource, string given

$arr = glob('images323/*.jpg');
foreach($arr as $el){
    imagescale($el, 960, -1); // error
}

1 个答案:

答案 0 :(得分:1)

此错误表明您正在向imagescale函数传递字符串,imagescale函数要求第一个参数是资源,即文件句柄

因此您的代码应类似于:

$arr = glob('images323/*.jpg');
foreach($arr as $el){
    $handle = imagecreatefromjpeg($el);
    imagescale($el, 960, -1); // error
}

请注意,我使用imagecreatefromjpeg是因为您正在扫描JPEG图像,而要扫描PNG,请使用imagecreatefrompng