Forum Webscript.Ru
Программирование => PHP => Тема начата: Uzver от 17 Августа 2004, 16:29:39
-
В наличии имеется небольшой скрипт, назначение которого пропорциональное изменение размеров картинки. Проблема заключается в следующем: в случае, когда размер оригинальной картинки превышает размер картинки получаемой на выходе более чем в полтора раза по правому и нижнему краям у выходной картинки появляются черные полосы. При чем данный «глюк» проявляется на различных серверах в соотношении где-то 60/40. Пробовал привязать его возникновение к настройкам апача, ничего не вышло. Если кто-то сталкивался с проблемой, или знает как ее решить, буду признателен за помощь.
-
и сам код скрипта, пример можно сказать хрестоматийный...
foreach ($_REQUEST as $key=>$value) {
$$key=$value;
}//foreach
function LoadJpeg($imgname) {
$im = @imagecreatefromjpeg ($imgname);
if (!isset($im)) {
$im = imagecreate (150, 30);
$bgc = imagecolorallocate ($im, 255, 255, 255);
$tc = imagecolorallocate ($im, 0, 0, 0);
imagefilledrectangle ($im, 0, 0, 150, 30, $bgc);
imagestring ($im, 1, 5, 5, "Error loading $imgname", $tc);
}
return $im;
}//function
$max_width = $w;
$max_height = $h;
$size = GetImageSize($image);
$width = $size[0];
$height = $size[1];
$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;
if (($width <= $max_width) && ($height <= $max_height) ) {
$tn_width = $width;
$tn_height = $height;
}
elseif (($x_ratio * $height) < $max_height) {
$tn_height = ceil($x_ratio * $height);
$tn_width = $max_width;
}
else {
$tn_width = ceil($y_ratio * $width);
$tn_height = $max_height;
}
$src = LoadJpeg($image);
$dst = ImageCreateTrueColor($tn_width,$tn_height);
ImageCopyResized($dst, $src, 0, 0, 0, 0,$tn_width,$tn_height,$width,$height);
header("Content-type: image/jpeg");
ImageJpeg($dst, null, -1);
ImageDestroy($src);
ImageDestroy($dst);
?>
-
можно спросить?
почему обязательно, задавая свои ламерские вопросы, надо влезать в чужую тему и давать там ламерские ответы?
-
потому что я пытаюсь понять то, что мне непонятно и интересно, и ни кому не навязываю свою точку зрения и свои условия
-
за твое поведение в другом топике я этот закрываю.
"Не навязываю"? Это ты мне - МНЕ - рассказываешь, как работать с регистер глобалс - офф?
И ты еще споришь со мной, что код, который ты привел - идиотский?
И ты не ответил мне на вопрос, который я тебе задал?
И после этого ты заявляешь мне, что пытаешься что-то понять?
вон отсюда.