我试图在优化之前从特定文件夹中获取图像的文件大小。
$imgsize
和$newsize
的大小相同,即使后者在图像优化后出现。我真正想要的是它让我变成了新尺寸,而不是旧尺寸!
$array
包含图片的网址列表(绝对网址,属于另一台服务器)
(也让我知道,在优化此部分$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);
}
答案 0 :(得分:0)
感谢@u_mulder的回答。 clearstatcache
完美地工作并解决了问题! :)这是因为它删除了旧的变量数据。