Yabancı bir kaynaktan alıntılayarak paylaşıyorum. Genelde bu tarz konularla ilgili hazır kütüphaneler kullanmak daha mantıklı fakat kendinize ait olsun istiyorsanız şöyle basit bir örnek verilmiş. Gayet basit ve açık. Sizde diğer örneklere ve hazır kütüphanelere bakmak isterseniz "Image Optimization" şeklinde aratabilirsiniz.
Edit: Ek olarak resim isminde bu kadar rastgele sayı kullanmanıza gerek yok. 1 Rastgele sayı ve o anki tarihi timestamp cinsiyle birleştirmeniz benzersiz bir isim ortaya çıkaracaktır.
<?php
function compress($source, $destination, $quality) {
$info = getimagesize($source);
if ($info['mime'] == 'image/jpeg')
$image = imagecreatefromjpeg($source);
elseif ($info['mime'] == 'image/gif')
$image = imagecreatefromgif($source);
elseif ($info['mime'] == 'image/png')
$image = imagecreatefrompng($source);
imagejpeg($image, $destination, $quality);
return $destination;
}
$source_img = 'source.jpg';
$destination_img = 'destination .jpg';
$d = compress($source_img, $destination_img, 90);
?>