Я пытаюсь получить файлы изображений из определенной папки ПОСЛЕ и ПЕРЕД тем, как они оптимизированы.Невозможно получить новый размер изображения PHP
Я получаю такой же размер для $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);
}
Думаю, вам нужно использовать 'clearstatcache' –
Perfect! Это сработало. благодаря! Я собираюсь подробно проверить, как это влияет на остальную часть кода, но пока у меня есть мое решение. – i333