Помогите поправить код

Print RSS
188

Author
Дух
0
$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 сек.
просто на работе..в запаре..голова не варит и времени нет.выручайте
Author
Дух
0
чё нет знатоков?

Лузер PHP
0
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;          
  }   

Лузер PHP
0
2. Комикс, можно так использовать...уменьшенным изображением особо сервер не перегрузишь...до 1 кб
А

Оранжевые штаны
0
$tn_width $tn_height это и есть результат вычисления размера
<?php
$razm = 80;
$width = $sizs[0];
$height = $sizs[1];
$tn_width = 80;
$tn_height = 80;
Changed: Александр (01.02.2012 / 22:56)

Лузер PHP
0
5. Муз-ТВ, его код не особо...

Чатланин
0
измени
$razm = 80;
и
$tn_width = 80;
$tn_height = 80;
Author
Дух
0
ничего не подходит вышесказанное.может туплю.вот полный код чтобы понятнее было:
<?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();
}
?>
поправьте как надо плиз
Author
Дух
0
поднял тему спустя более 8 часов
Stickers / Tags / Rules / Top topics / Top Posts / Search