В интернет-приложениях очень часто используются формы загрузки изображений. В некторых случаях, для больших изображений необходимо сделать их маленькие копии, которые бы вписывались в определенные пропорции. Предлагаю небольшой скрипт для решения этой проблемы:


PHP:
  1. $gd_image = imagecreatefromjpeg($path_to_source);
  2. $w = imagesx($gd_image);
  3. $h = imagesy($gd_image);
  4.  
  5. $wm = $max_width/$w;
  6. $hm = $max_height/$h;
  7.  
  8. if ($wm < $hm){
  9.   $targetw = $w * $wm;
  10.   $targeth = $h * $wm;
  11. } else {
  12.   $targetw = $w * $hm;
  13.   $targeth = $h * $hm;
  14. }
  15. $output = imagecreatetruecolor($targetw, $targeth);
  16. imagecopyresized($output, $gd_image, 0, 0, 0, 0, $targetw, $targeth, $w, $h);
  17. imagejpeg($output, $path_to_destination);

Связанные записи