Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> Пропорциональная миниатюра.
Ramzil_Nixon  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



© Nixon official
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1600
Пользователь №: 30142
На форуме: 13 лет, 6 месяцев, 7 дней
Карма: 18

Трезвый :
32 года, 1 месяц, 19 дней


$width = 200; // Высота или ширина миниатюры изображения
$w = $GetImage[0]; // Ширина изображения
$h = $GetImage[1]; // Высота изображения
if(max($w, $h) >= $width) // Определяем большую сторону фотографии
{
$w = $w >= $h ? $width : floor($width * ($w / $h)); // Если ширина больше высоты
$h = $w <= $h ? $width : floor($width * ($h / $w)); // Если высота больше ширины
}
echo $w.'x'.$h;


Есть такой код.
КОгда загружаю изображение ширина которой меньше высоты то ширину для миниатюры выдает нормальную.
Но если загружаю изображение, чья ширина больше высоты, то обе стороны у меня по 200х200. В чем тут подвох?
На мой взгляд скрипт правильный



Спустя 22 минуты, 49 секунд (16.05.2012 - 16:17) Ramzil_Nixon написал(а):
Вычеслил что должен вывести скрипт, и он оказывается правильно работает. Только вот я не понимаю, как допустим изображение на 1200 х 778 может размещаться на 200 х 200? Мне надо чтобы пустого место не оставалось

Спустя 1 минута, 26 секунд (16.05.2012 - 16:19) inpost написал(а):
обрезать лишнее. Надо, чтобы минимальная сторона занимала именно 200, а не максимальное.

Спустя 7 минут, 23 секунды (16.05.2012 - 16:26) Ramzil_Nixon написал(а):
inpost, мне надо уменьшать изображение на весь рост.

А самое интересное. Я этот же скрипт написал несколько месяцев назад, и все нормально работало, а теперь не работает.

Цитата (inpost @ 16.05.2012 - 12:19)
обрезать лишнее.


На счет этого у меня еще будет вопросов, думаю очень много когда буду резать квадратные миниатюры smile.gif

Спустя 25 минут, 32 секунды (16.05.2012 - 16:52) Ramzil_Nixon написал(а):
Балин, нашел же ошибку :D
Точнее эту ошибку сам получается как будто специально сделал :)

$w = $w >= $h ? $width : floor($width * ($w / $h)); // Если ширина больше высоты
$h = $w <= $h ? $width : floor($width * ($h / $w)); // Если высота больше ширины

$w же при первом условии приобретает 200, получается что высота бывает больше ширины и тоже присваивается 200 :D

Спустя 1 минута, 54 секунды (16.05.2012 - 16:54) Ramzil_Nixon написал(а):
$width = 200; // Высота или ширина миниатюры изображения
if(max($GetImage[0], $GetImage[1]) >= $width) // Определяем большую сторону фотографии
{
$w = $GetImage[0] >= $GetImage[1] ? $width : ceil($width * ($GetImage[0] / $GetImage[1])); // Если ширина больше высоты
$h = $GetImage[0] <= $GetImage[1] ? $width : ceil($width * ($GetImage[1] / $GetImage[0])); // Если высота больше ширины
}
else // Если миниатюры меньше 200 оба стороны
{
$w = $w; // Ширина
$h = $h; // Высота
}
// *** Начинаем создание миниатюры для страниц, то есть уменьшенный без обрезки оригинал
$image = imagecreatetruecolor($w, $h); // Создаем изображение
$n_image = imagecreatefromjpeg($dirAnName); // Создаем JPEG файл
imagecopyresampled($image, $n_image, 0, 0, 0, 0, $w, $h, $GetImage[0], $GetImage[1]); // Клеим изображение
imagejpeg($image, $MiniAva, 100); // Записываем изображение


Вот теперь работает как надо :)

Спустя 13 минут, 27 секунд (16.05.2012 - 17:07) Ramzil_Nixon написал(а):
Подкиньте пожалуйста идею, а вот как делать если мне ширина нужна постоянно допусти 200 пикселев?
Не смотря на того что ширина больше высоты или наоборот.
Такая же пропорционально сжималось,.

Спустя 21 минута, 39 секунд (16.05.2012 - 17:29) Ramzil_Nixon написал(а):
Уже не надо, разобрался smile.gif


--------------------
Миллионы приходят, уходят, не в них счастье. Самым важным на свете всегда будут люди в этой комнате, вот здесь, сейчас...

user posted image
PMСайт пользователяIntegrity Messenger IMICQAOLYahooMSN
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса