W3 debug — Просмотрщик картинок — Как вписать картинку в рамку (алгоритм) / Свободный диспут / Wallpapers[ru]
Чат

Авторизация

Напомнить пароль
Регистрация

Свободный диспутW3 debug — Просмотрщик картинок — Как вписать картинку в рамку (алгоритм)

Ситуация: зашел в топик www.wallpapers.ru/invader/, кликнул по превьюшке, подгрузилась, расширилась и отобразилась новым слоем соответствующая крупногабаритная картинка.
Проблема: большая картинка умещается на экране по ширине, но не по высоте.
Резюме: недочет в алгоритме масштабирования.
Предлагаю выкопировку из своего алгоритма (см. спойлер ниже):
Как вписать картинку в рамку (алгоритм)
# Параметры вызова:
# img_w, img_h — габариты исходной картинки (pix)
# w_max, h_max — габариты миниатюры (предельные размеры)

# Формируем миниатюру, вписанную в холст размером [$args{w_max} x $args{h_max}]
# (при этом заданная миниатюра не может быть больше оригинальной картинки)
$w_tiny = $args{img_w} > $args{w_max}? $args{w_max}: $args{img_w};
$h_tiny = My_Output::my_round($args{img_h} / $args{img_w} * $w_tiny);
if ($h_tiny > $args{h_max}) {
$h_tiny = $args{h_max};
$w_tiny = My_Output::my_round($args{img_w} / $args{img_h} * $h_tiny);
}

# Если заданный юзером размер миниатюры не превышает габариты исходного изображения:
if ($w_tiny != $args{img_w} || $h_tiny != $args{img_h}) {

# Уменьшаем исходную картинку до размера миниатюры:
$imagemagick->Thumbnail(width => $w_tiny, height => $h_tiny);
}

Применительно к нашему случаю
# img_w, img_h — габариты исходной картинки (pix)
# w_max, h_max — предельные габариты отображаемой большой картинки (pix), вычисленные как часть окна браузера (урезанный fullscreen)
# $w_tiny и $h_tiny — окончательные размеры смасштабированного изображения, вписанного в w_max, h_max

Вверх

Комментарии (7)

rss | свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Такое раньше было, если вы могли заметить, так что это не недочёт, это фича, сделано специально.
свернуть ветку
ну и зря. Здесь: лучшее — враг хорошего
свернуть ветку
Могу вернуть, если много заявок будет, просто вроде поспрашивал народ — им больше так нравится, а то вертикальные работы очень мелкие выходят :(
свернуть ветку
тогда зачем вообще этот заумный просмотрщик нужен?
можно же дать прямую ссылку на JPG и, масштабируй браузером, как хочешь.
свернуть ветку
это ведь дело предпочтений, я сам люблю в браузере на новой странице смотреть, но есть и другая часть людей которая не способна на это).
свернуть ветку
А если сделать опцию чтобы и так и так?
свернуть ветку
как по мне то вроде удобно как есть
свернуть ветку
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Виджет для комментариев от «ВКонтакте»