Загрузка картинок на сайт (статьи)

#1 28 мая 2012 в 12:38
Здравствуйте. я так думаю это ошибка. загружаю картинку в статью. она обрезается 800х800 хотя должна только по ширине обрезаться 800 на 800… примерно вот картинка которая получилась l2west.ru/images/photos/small/article34.jpg хотя должна была получится 800х231 т.е. пропорционально уменьшаться высота а не браться за ширину…

да и как можно это понять… для чего оно О_о

  1. while ($new_width>$maxwidth) { $new_width *= 0.99; $new_height *= 0.99; }
  2. while ($new_height>$maxheight) { $new_width *= 0.99; $new_height *= 0.99; }

немного разобрал код… в шоке был.
  1. $idest = imagecreatetruecolor($maxwidth,$maxwidth);
Записать в тикет? что это глобальная ошибка. и оно не должно так делаться. как минимум 2 варианта. или авто пропорционально уменьшаться или же в админке высоту указать… и то с проверкой сделать если 0 стоит то авто-уменьшение
#2 28 мая 2012 в 14:33
у вас выставлена генерация квадратных превью…
#3 28 мая 2012 в 14:41
значит максимальная высота равна максимальной ширине при 800px для ширины квадрата получите увеличение высоты, если пропорции сохранять уберите генерацию квадратных уменьшенных копий, тогда ширина и будет соответствовать максимальной ширине…
#4 28 мая 2012 в 14:44
Главная → Компоненты → Каталог статей → Настроить каталог статей

Квадратные: Да Нет
#5 28 мая 2012 в 14:47
да ты был прав у меня стояли квадратное отображение😊но… тут сделал проверку, и был шокирован, вот это у них делает пропорциональное фото

  1.  
  2. while ($new_width>$maxwidth) { $new_width *= 0.99; $new_height *= 0.99; }
  3. while ($new_height>$maxheight) { $new_width *= 0.99; $new_height *= 0.99; }
  4. $idest = imagecreatetruecolor($new_width, $new_height);
  5. imagefill($idest, 0, 0, $rgb);
  6. imagecopyresampled($idest, $isrc, 0, 0, 0, 0, $new_width, $new_height, $size[0], $size[1]);
  7.  
не есть хорошо запрос который постоянно обрезает по 1 пикселя… ааа я ослеп от этого кода. желательно его переписать.

загрузка этого кода дольше чем загрузка картинок в квадратном варианте. а все из за того что происходит вечный цикл пока не уменьшиться картинка.
#6 28 мая 2012 в 15:05

вот это у них

WarDJ
WarDJ, эмоций и пренебрежения поменьше.

есть решение/улучшение — спокойно сделайте и выложите.
#7 28 мая 2012 в 15:12
вот переписал. строго не судить

  1.  
  2.  
  3. list($wid,$heig) = $size;
  4. $koewidth=$wid/$maxwidth;
  5. $new_h=ceil($heig/$koewidth);
  6. $idest = imagecreatetruecolor($maxwidth, $new_h);
  7. imagefill($idest, 0, 0, $rgb);
  8. imagecopyresampled($idest, $isrc, 0, 0, 0, 0, $new_width, $new_height, $size[0], $size[1]);
  9.  
  10.  
Fuze, сори это я просто так к слову сказал, захарило писать "вот PHP код который используется в InstantCMS для пропорциональной обрезки картинок.". Обидел — сори, скрипт писал на обеде не было времени потестить, залил 1 картинку вроде все ок, тестируйте и отпишитесь что к чему.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.