我正在尝试在优化后和优化前从特定文件夹中获取图像的文件大小
我得到了$imgsize
和$newsize
相同的大小,即使后者在图像优化后出现。我真正想要的是它能给我新的尺寸,而不是旧的!
$array
具有图像的URL列表(绝对URL,属于另一个服务器)
(也让我知道,我在优化$optimized_image= compress_image($path, $path, 50);
中的尺寸后替换相同的图像可以吗?)?
这是我的代码:
$f_path='newfolder';
foreach ($array as $imglink)
{
$image = file_get_contents($imglink);
$path= $f_path . "/" . basename($imglink);
$new_image=file_put_contents($path , $image);
$imgsize = filesize($path);
$optimized_image= compress_image($path, $path, 50);
$newsize = filesize($path);
$percentage = ($imgsize / $newsize)*100;
echo $imgsize . "<br/>"; //this size appears fine
echo $newsize; //gives same size as above, no change!
}
这是我用来压缩图像的功能(对我来说似乎非常好)
function compress_image($src, $dest , $quality)
{
$info = getimagesize($src);
if ($info['mime'] == 'image/jpeg')
{
$image = imagecreatefromjpeg($src);
}
elseif ($info['mime'] == 'image/gif')
{
$image = imagecreatefromgif($src);
}
elseif ($info['mime'] == 'image/png')
{
$image = imagecreatefrompng($src);
}
else
{
die('uknown format');
}
imagejpeg($image, $dest, $quality);
}
感谢@u_mulder的回答。clearstatcache
完美工作,解决了问题!:)这是因为它删除了旧的变量数据。