Форумы xBB

Форумы xBB > BBCode и прочие языки упрощенной разметки

Как ограничить размер выводимой картинке в выходном html?

Автор: Гость BLSmith. Последнее редактирование: 2009-07-22 18:07:28

Так как sidebar ограничен по ширине, то нужно чтобы изображения, которые могут оказаться в полученном html масштабировались согласно этой ширине или заданному заранее значению.
 
Подскажите как это можно реализовать.

6 комментариев

23.07.2009 12:59:15 #
Iceweasel dima
У тега [img] есть атрибут width. С его помощью можно масштабировать картинки согласно заданному заранее значению.
23.07.2009 21:56:33 #
Internet Explorer Гость BLSmith
Дима, спасибо за ответ. Проблема в том что установленный атрибут width отлично подходит для форума, но пропарсенный атрибут width не годится для sidebar wordpressa. Там нужно "ужать" форумную картинку.
 
Вот пример:
Так выглядит последний пост на форуме.
 

 
Размеры картинки вполне нормальные для форумного сообщения.
 
А вот так выглядит этот пост в sidebar wordpress.

Из-за того что картинка слишком большая нарушается вся верстка и правая панель где она отображается падает вниз под основное поле.
 
Возможно ли как то сделать чтобы  в полученном html перед выводом проводилась проверка размера изображения и если оно превышает определенное значение X, то картинка бы уменьшалась например в Y раз?
 
Я сам только начал осваивать php, поэтому извиняюсь если спрашиваю какие то глупости.
23.07.2009 22:58:31 #
Iceweasel dima
Попробуйте воспользоваться CSS. Отредактируйте bbcode/Xbb/Tags/Img.php таким образом, чтобы каждый тег картинки содержал указание класса. Например такое: class="bb". А в таблице стилей для WordPress пропишите фиксированную ширину для img.bb
23.07.2009 23:40:38 #
Internet Explorer Гость BLSmith
Спасибо за идею! Буду пробовать.
14.12.2009 18:37:24 #
Неизвестный браузер Ft
в фаерфоксе при уменьшении/увеличении width изображения, height уменьшается/увеличивается в масштабе, но в опере такого нет(по ие не знаю)))) и лучше использовать функции, к примеру (написал на скору руку):
PHP

function img_h($p){
        $s = 450;
        $p = (String)$p;
        list($wid, $hei) = getimagesize($p);
        if($hei>$s){
                return $s;
        }else{
                return $hei;
        }
}
 
function img_w($p){
        $s = 450;
        $p = (String)$p;
        list($wid, $hei) = getimagesize($p);
        if($hei>$s){
                return $s/$hei*$wid;
        }else{
                return $wei;
        }
}
 
img_w возвращает ширину, img_h, соответственно, высоту (тоесть функции уменьшают картинку в масштабе).в переменную s забиваем желаемый размер height. сам проверял - работает
14.12.2009 22:50:19 #
Mozilla Firefox dima
Спасибо за ценное сообщение!

Ответить:

Представиться как     Антибот:
   

Просьба не постить мусор. Пользуйтесь кнопкой предварительного просмотра на панели инструментов редактора.

Введите логин: и пароль: (

© 2007-2019, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.