Помогите поправить код
1.
Удаленный (01.02.2012 / 16:47)
$razm = 80;
$width = $sizs[0];
$height = $sizs[1];
$x_ratio = $razm / $width;
$y_ratio = $razm / $height;
if (($width <= $razm) && ($height <= $razm)) {
$tn_width = $width;
$tn_height = $height;
}
else
if (($x_ratio * $height) < $razm) {
$tn_height = ceil($x_ratio * $height);
$tn_width = $razm;
}
else {
$tn_width = ceil($y_ratio * $width);
$tn_height = $razm;
}
код который работает над размером картинки.тоесть её уменьшает пропорционально.как отключить пропорцию и сделать чтобы выводилась картинка чисто например 80*80
Добавлено через 05:43 сек.
просто на работе..в запаре..голова не варит и времени нет.выручайте
2.
Удаленный (01.02.2012 / 22:21)
чё нет знатоков?
3.
Николай (01.02.2012 / 22:23)
function resizeimg($big, $small, $width, $height)
{
// Имя файла с масштабируемым изображением
$big = "../../$big";
// Имя файла с уменьшенной копией.
$small = "../../$small";
// определим коэффициент сжатия изображения, которое будем генерить
$ratio = $width / $height;
// получим размеры исходного изображения
$size_img = getimagesize($big);
list($width_src, $height_src) = getimagesize($big);
// Если размеры меньше, то масштабирования не нужно
if (($width_src<$width) && ($height_src<$height))
{
copy($big, $small);
return true;
}
// получим коэффициент сжатия исходного изображения
$src_ratio=$width_src/$height_src;
// Здесь вычисляем размеры уменьшенной копии, чтобы при
// масштабировании сохранились пропорции исходного изображения
if ($ratio<$src_ratio)
{
$height = $width/$src_ratio;
}
else
{
$width = $height*$src_ratio;
}
// создадим пустое изображение по заданным размерам
$dest_img = imagecreatetruecolor($width, $height);
$white = imagecolorallocate($dest_img, 255, 255, 255);
if ($size_img[2]==2) $src_img = imagecreatefromjpeg($big);
else if ($size_img[2]==1) $src_img = imagecreatefromgif($big);
else if ($size_img[2]==3) $src_img = imagecreatefrompng($big);
// масштабируем изображение функцией imagecopyresampled()
// $dest_img - уменьшенная копия
// $src_img - исходной изображение
// $width - ширина уменьшенной копии
// $height - высота уменьшенной копии
// $size_img[0] - ширина исходного изображения
// $size_img[1] - высота исходного изображения
imagecopyresampled($dest_img,
$src_img,
0,
0,
0,
0,
$width,
$height,
$width_src,
$height_src);
// сохраняем уменьшенную копию в файл
if ($size_img[2]==2) imagejpeg($dest_img, $small);
else if ($size_img[2]==1) imagegif($dest_img, $small);
else if ($size_img[2]==3) imagepng($dest_img, $small);
// чистим память от созданных изображений
imagedestroy($dest_img);
imagedestroy($src_img);
return true;
}
4.
Николай (01.02.2012 / 22:24)
2.
Комикс, можно так использовать...уменьшенным изображением особо сервер не перегрузишь...до 1 кб
5.
Александр (01.02.2012 / 22:55)
$tn_width $tn_height это и есть результат вычисления размера
<?php
$razm = 80;
$width = $sizs[0];
$height = $sizs[1];
$tn_width = 80;
$tn_height = 80;
6.
Николай (01.02.2012 / 23:04)
5.
Муз-ТВ, его код не особо...
7.
Илья (01.02.2012 / 23:17)
измени
$razm = 80;
и
$tn_width = 80;
$tn_height = 80;
8.
Удаленный (02.02.2012 / 08:52)
ничего не подходит вышесказанное.может туплю.вот полный код чтобы понятнее было:
<?php
$file = isset ($_GET['file']) ? htmlspecialchars(base64_decode(urldecode($_GET['file']))) : NULL;
if ($file && file_exists('img/images/' . $file)) {
$sizs = GetImageSize('img/images/' . $file);
$type = $sizs['mime'];
$razm = 80;
$width = $sizs[0];
$height = $sizs[1];
$x_ratio = $razm / $width;
$y_ratio = $razm / $height;
if (($width <= $razm) && ($height <= $razm)) {
$tn_width = $width;
$tn_height = $height;
}
else
if (($x_ratio * $height) < $razm) {
$tn_height = ceil($x_ratio * $height);
$tn_width = $razm;
}
else {
$tn_width = ceil($y_ratio * $width);
$tn_height = $razm;
}
switch($type)
{
case'image/jpg':
$im=ImageCreateFromJpeg('img/images/' . $file);
break;
case'image/jpeg':
$im=ImageCreateFromJpeg('img/images/' . $file);
break;
case'image/gif':
$im=ImageCreateFromGif('img/images/' . $file);
break;
case'image/png':
$im=ImageCreateFromPng('img/images/' . $file);
break;
default:
die('не удалось создать картинку');
}
$im1 = imagecreatetruecolor($tn_width, $tn_height);
imagecopyresized($im1, $im, 0, 0, 0, 0, $tn_width, $tn_height, $width, $height);
// Передача изображения в Браузер
ob_start();
imageJpeg($im1, NULL, 80);
ImageDestroy($im);
imagedestroy($im1);
header("Content-Type: img/images/jpg");
header('Content-Length: ' . ob_get_length());
ob_end_flush();
}
?>
поправьте как надо плиз
9.
Удаленный (02.02.2012 / 12:42)
поднял тему спустя более 8 часов
URL:
https://visavi.net/topics/29050