无法获得新的图像大小PHP

时间:2014-09-27 20:03:24

标签: php function

我试图在优化之前从特定文件夹中获取图像的文件大小。

$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);
}

1 个答案:

答案 0 :(得分:0)

感谢@u_mulder的回答。 clearstatcache完美地工作并解决了问题! :)这是因为它删除了旧的变量数据。