Поисковая форма:) поиск по free-lance.ru Топ/история/обновления фриланса, по разным параметрам (темы, сообщения, пользователи...) Автоматическое удаление постов от ненужных юзеров в топике (php скрипт) Досье(точный ник)
 

Ник (или часть ника):
?
Какой текст ищем:
?
Раздел блогов:
За срок
дней
Тип поиска: (по вхождению: по тексту гуг выдаст посты с "гуг", "гугл", "огугл"; "полнотекстовый": по тексту "гуг" выдаст посты только с "гуг")
По вхождению строки:  Полнотекстовый: 
(поиск не 100% актуальный, есть определённая задержка при обновлении данных для поиска. )
0 Всего найдено: 9
kiroleg Сообщение 11/08/2010 19:14 Копия темы
Обрезка картинок: соотношение сторон Уважаемое сообщество. Требуется помощь зала.

Нижеследующая функция создаёт превьюшки изи исходного изображения с соотношением сторон 4х3. Однако, при исходном изображении с другим соотношением сторон оставшееся пространство заливается белым цветом.

Что нужно исправить, чтобы обрезало, как показано на картинке? Заранее спасибо.
   

$h = 150;
$w = 200;

      // определим коэффициент сжатия изображения, которое будем генерить   
      $ratio = $w/$h;   
      // создадим пустое изображение по заданным размерам   
      $dest_img = imagecreatetruecolor($w, $h);         
      // зальём его белым цветом   
      imagefill($dest_img, 0, 0, 0xFFFFFF);      
      // получим размеры исходного изображения   
      $size_img = getimagesize($dest_file_name);   
      // получим коэффициент сжатия исходного изображения   
      $src_ratio=$size_img[0]/$size_img[1];   

if (($size_img[0]<$w) && ($size_img[1]<$h)) return true;

      // здесь вычисляем размеры, чтобы при масштабировании сохранились   
      // 1. Пропорции исходного изображения   
      // 2. Исходное изображение полностью помещалось на маленькой копии   
      // (не обрезалось)   
      if ($src_ratio>$ratio)   
      {   
            $old_h=$size_img[1];   
            $size_img[1]=floor($size_img[0]/$ratio);   
            $old_h=floor($old_h*$h/$size_img[1]);   
      }   
      else   
      {   
            $old_w=$size_img[0];   
            $size_img[0]=floor($size_img[1]*$ratio);         
            $old_w=floor($old_w*$w/$size_img[0]);   
      }   
         
      // исходя из того какой тип имеет изображение   
      // выбираем функцию создания   
      switch ($size_img['mime'])   
      {   
            // если тип файла JPEG   
            case 'image/jpeg':   
                  // создаем jpeg из файла   
                  $src_img = imagecreatefromjpeg($dest_file_name);                     
                  break;               
            // если тип файла GIF                     
            case 'image/gif':         
                  // создаем gif из файла               
                  $src_img = imagecreatefromgif($dest_file_name);                     
                  break;               
            // если тип файла PNG
            case 'image/png':         
                  // создаем png из файла               
                  $src_img = imagecreatefrompng($dest_file_name);                     
                  break;               
      }   
      // масштабируем изображение      функцией 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]);               
         
      imagejpeg($dest_img, "$imgthumbfullname");

      // чистим память от созданных изображений   
      imagedestroy($dest_img);   
      imagedestroy($src_img);            
umbr Сообщение 11/08/2010 19:21 Копия темы
как-то так... r = w/h;

if(r < 1.0)
      h = w * 3/4;
else
      w = h * 4/3;
kiroleg Сообщение 11/08/2010 19:23 Копия темы
Спасибо, будем пробовать.
pritula Сообщение 11/08/2010 19:25 Копия темы
Буратино вынул дрель и засверлился.
kiroleg Сообщение 11/08/2010 19:25 Копия темы
ы)
mishsun Сообщение 11/08/2010 19:31 Копия темы
Обсмотрелись фильма "Пи"?

Хороших снов.
umbr Сообщение 11/08/2010 19:49 Копия темы
можно проще if(w < h)   
         h = w * 3/4;   
else   
         w = h * 4/3;
InsomniaFromSky Сообщение 11/08/2010 19:58 Копия темы
Чувак засверлился!)
Olania Сообщение 11/08/2010 20:54 Копия темы
мдя... весьма симпатичная дрелетина к приятному сну...
0

©2008 edogs egods
Выразить восторг, поругаться
или предложить что-нибудь можно на форуме
Для обсуждения этого сервиса так же есть темы на фрилансе по
поиску , флудотопу ,и по удалённым сообщениям ,и по Актуальным/популярным темам , и по топу "кто кому больше наотвечал"