Sunucunda PHP icin GD kütüphanesi var mı ?
Eski imageları kurtarmak için:
Görseller url leri mysql veritabanına bağlanıp çekebiliyor musun?
Görsellerin bulunduğu klasör senin sunucunda yer alıyor mu ?
Eğer bu sorulara yanıtın evet ise;
Bir sorgu yazarak imageların bulunduğu tablodan verileri çekerek işleme başlayabilirsin eğer çok image varsa LIMIT 100 , 200 şeklinde çekerek birkaç sayfada sıralayabilirsin.
Bu sorgudan gelen cevap şöyle olsun
id,image_name,...
image_name den gelenleri değişkene atarak
function compress_image($source_url, $destination_url, $quality) {
$info = getimagesize($source_url);
if ($info['mime'] == 'image/jpeg')
$image = imagecreatefromjpeg($source_url);
elseif ($info['mime'] == 'image/gif')
$image = imagecreatefromgif($source_url);
elseif ($info['mime'] == 'image/png')
$image = imagecreatefrompng($source_url);
imagejpeg($image, $destination_url, $quality); // butun olayi yapan bu
return $destination_url;
}
$klasor = "images";
foreach($sorgu as $row){
$image_name = $row['image_name'];
$fullPath = $klasor.'/'.$image_name;
$quality = 60; // 1 - 100 e kadar
$destination_url = $fullPath; // eger istersen burayi degistirebilirsin baska bir yere kaydetmek istersen ornegin images klasorunun disina
compress_image($fullPath $destination_url, $quality);
}
//bunun gibi bir tarz kodu gelistirerek ise baslayabilirsin upload yaparken de upload yaptigin yerde yine bu function i kullanabilirsin.Yeni image eklerken
$file_tmp =$_FILES['image']['tmp_name'];
$file_name = $_FILES['image']['name'];
move_uploaded_file($file_tmp,"images/".$file_name);
compress_image("images/".$file_name, "images/".$file_name, 60);Bu tarza benzer bir kod gelistirebilirsin ben ornek verdim calisip calismadigindan emin degilim.
son olarak github ta bu konuyla ilgili milyonlarca repository var orayi da inceleyebilirisin ornek olarak
github php compress
wordpress olsa bir ton eklenti var sorun olmazdı da kendim yazdığım scripti kullanıyorum