для своего скрипта медиа галереи написал функцию пропорционального масштабирования картинки, вот собственно она:
Код | function resize_img($src,$name,$max_w,$max_h,$tr,$delete) { if(!function_exists('imagecopyresampled')) { echo 'У вас не установлена библиотека GD!'; return $name; } $frm = substr($name,-4,4); switch ($frm) { case '.jpg' : $img = imagecreatefromjpeg($src.$name); break; case '.png' : $img = imagecreatefrompng($src.$name); break; case '.gif' : $img = imagecreatefromgif($src.$name); break; } $rh = imagesy($img); $rw = imagesx($img); if ($rw > $max_w || $rh > $max_h) { if ($rw < $rh || $rw == $rh) { $y = $max_h / $rh; $h = floor($rh * $y); $w = floor($rw * $y); } else { $x = $max_w / $rx; $h = floor($rh * $x); $w = floor($rw * $x); } $new = imagecreatetruecolor($w, $h); imagecopyresampled($new, $img, 0, 0, 0, 0, $w,$h,$rw,$rx); mt_srand(time()); $rand = mt_rand(0,1000); if ($tr == 't') { while (file_exists('tmb_'.$rand.'.png')) $rand; imagepng($new,$src.'tmb_'.$rand.'.png'); } if ($tr == 'r') { while (file_exists('rs_'.$rand.'.jpg')) $rand; imagejpeg($new,$src.'rs_'.$rand.'.jpg'); } imagedestroy($new); imagedestroy($img); if ($delete == 1) unlink ($src.$name); } else { imagedestroy($img); return $name; } $file = 'tmb_'.$rand.'.png'; return $file; }
|
но проблема, выходное сохраняемое изображение почему-то тупо чёрный фон(( подскажите плз, где моя ошибка |