Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не создаёт уменьшенную копию вертикального изображения
 
 автор: Kaje   (16.03.2012 в 03:54)   письмо автору
 
 

Здравствуйте. Проблема в следующем. Есть функция для изменения размера изображения в пропорциях, которая сохраняет миниатюру этого изображения. Но вот почемуто напрочь отказывается создавать миниатюру именно ВЕРТИКАЛЬНЫХ изображений. Пол дня сижу. Может подскажете где собака зарыта?
function resizeimg($filename, $smallimage, $w, $h) 

    // Имя файла с масштабируемым изображением 
    //$filename = $filename; 
    // Имя файла с уменьшенной копией. 
    //$smallimage = $smallimage;     
    // определим коэффициент сжатия изображения, которое будем генерить 
    $ratio = $w/$h; 
    // получим размеры исходного изображения 
    $size_img = getimagesize($filename); 
    
    // Если размеры меньше, то масштабирования не нужно 
    
    if (($size_img[0]<'350')) return true; 
    
    if (($size_img[0]<$w) && ($size_img[1]<$h)) return true; 
    // получим коэффициент сжатия исходного изображения 
    $src_ratio=$size_img[0]/$size_img[1]; 

    // Здесь вычисляем размеры уменьшенной копии, чтобы при масштабировании сохранились  
    // пропорции исходного изображения 
    if ($ratio<$src_ratio) 
    { 
      $h = $w/$src_ratio; 
      $h = round($h);
    } 
    else 
    { 
      $w = $h*$src_ratio; 
      $w = round($w);
    } 
    // создадим пустое изображение по заданным размерам  
    $dest_img = imagecreatetruecolor($w, $h);   
    $white = imagecolorallocate($dest_img, 255, 255, 255);        
    if ($size_img[2]==2)  $src_img = imagecreatefromjpeg($filename);                       
    else if ($size_img[2]==1) $src_img = imagecreatefromgif($filename);                       
    else if ($size_img[2]==3) $src_img = imagecreatefrompng($filename);  

    // масштабируем изображение     функцией imagecopyresampled() 
    // $dest_img - уменьшенная копия 
    // $src_img - исходной изображение 
    // $w - ширина уменьшенной копии 
    // $h - высота уменьшенной копии         
    // $size_img[0] - ширина исходного изображения 
    // $size_img[1] - высота исходного изображения 
    imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $w, $h, $size_img[0], $size_img[1]);   
    
             
    // сохраняем уменьшенную копию в файл  
    if ($size_img[2]==2)  imagejpeg($dest_img, $smallimage);                       
    else if ($size_img[2]==1) imagejpeg($dest_img, $smallimage);                       
    else if ($size_img[2]==3) imagepng($dest_img, $smallimage);  
    // чистим память от созданных изображений 
    imagedestroy($dest_img); 
    imagedestroy($src_img); 
    return true;          
}

  Ответить  
 
 автор: Slo_Nik   (16.03.2012 в 04:02)   письмо автору
 
   для: Kaje   (16.03.2012 в 03:54)
 

if (($size_img[0]<'350')) return true; вот это по моему лишнее....

$h = round($h); и $h = round($h); для чего?

  Ответить  
 
 автор: Kaje   (16.03.2012 в 12:23)   письмо автору
 
   для: Slo_Nik   (16.03.2012 в 04:02)
 

То была мыслишка, что не создается потому что разрешение ставилось не округленное. а в виде 360,79

  Ответить  
 
 автор: Slo_Nik   (16.03.2012 в 14:55)   письмо автору
2.7 Кб
 
   для: Kaje   (16.03.2012 в 12:23)
 

кстати, уменьшенная копия вертикального изображения создаётся....

  Ответить  
 
 автор: Kaje   (16.03.2012 в 18:36)   письмо автору
 
   для: Slo_Nik   (16.03.2012 в 14:55)
 

Спасибо за совет насчет

if (($size_img[0]<'350')) return true;
это какраз то что мешалось.

  Ответить  
 
 автор: Slo_Nik   (16.03.2012 в 20:36)   письмо автору
 
   для: Kaje   (16.03.2012 в 18:36)
 

ну вроде я вместе с этой строкой функцию запускал....

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования