GD library, imagecopyresampled()
kullanın a>.
<?php
// The file
$filename = 'test.jpg';
$percent = 0.5;
// Content type
header('Content-type: image/jpeg');
// Get new dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;
// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// Output
imagejpeg($image_p, null, 100);
?>
Eğer belirli bir boyut görüntü dosyasını yeniden boyutlandırmak istiyorsanız Edit:, bu biraz zor. Tüm önemli resim formatları sıkıştırma kullanabilir ve sıkıştırma oranları sıkıştırılmış ne niteliğine göre değişir. Masmavi gökyüzü sıkıştırmak ve insanların deniz olacak daha daha iyi bir sıkıştırma oranı elde edersiniz.
Yapabileceğiniz en iyi gerekirse ayarlayarak, belirli bir boyutu deneyin ve dosya boyutu ne olduğunu görmek belirli bir boyutunu deneyin.
Resize ratio = desired file size / actual file size
Resize multipler = square root (resize ratio)
New height = resize multiplier * actual height
New width = resize multiplier * actual width
Bu temelde beklenen sıkıştırma oranı bir yaklaşım faktörleri. (-% 5 gibi + /) ve gerektiğinde numaralarını çimdik Biraz tolerans olacağı beklenebilir.
Belirli bir dosya boyutuna yeniden boyutlandırmak için doğrudan bir yol yoktur. Son olarak ben belirli bir dosya boyutuna boyutlandırma oldukça sıradışı olduğunu eklemek gerekir. (Boy oranını muhafaza ederek), belirli bir yükseklik ve / veya genişliğine göre yeniden boyutlandırma çok daha yaygın ve beklenen (kullanıcı tarafından) 'dir.
Update: olarak doğru bir işaret, bu dosya boyutu yanlış olur. Oranı, (bir kez genişliğe, bir zamanlar yükseklik) iki kez uygulayarak konum olarak dosya boyutu oranlarının kare kök olması gerekiyor.