slv
написал 2 августа 2008 года в 05:53 (889 просмотров)
Ведет себя
неопределенно; открыл 1 тему в форуме, оставил 2 комментария на сайте.
У меня на сайте (пишу на php) есть возможность вставлять в камментарии картинки тегами [ img ]radikal.ru/123.jpg[ /img ] и возникла проблема с большими разрешениями, никто ведь не запрещает вставить картинку 1600х1200, со всеми вытекающими последствиями для дизайна, какие есть способы ограничить размеры?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Можно ведь получить размеры удаленной картинки. Ну, а далее — варианты:
1) Ругаться на пользователя, что он вставляет слонов.
2) Добавлять насильные width=, height= в HTML (пропорциональные оригинальным размерам).
3) Придумать что-нибудь новенькое и интересное :-) — например, с помощью imagemagick/gdlib/… отмасштабировать картинку, сохранить на своем сервере и показывать уже ее.
это будет тормозить скрипт, но все же интересно как это реализуется на пхп.
наверное это будет самый оптимальный вариант, вот накатал скриптик:
<img border=«0» id=«i1217675751» onload="</p><p> var s=getElementById(’i1217675751\′);</p><p> var w=s.width;</p><p> var h=s.height;</p><p> var wr=screen.width-590;</p><p> var hr=screen.height-590;</p><p> if(wr<435){wr=435;}</p><p> if(w>h||w==h){</p><p> if(w>wr){</p><p> this.width=wr;this.height=h/(w/wr);</p><p> }</p><p> }</p><p> if(w<h){</p><p> if(h>hr){</p><p> this.height=hr;this.width=w/(h/hr);}</p><p> }</p><p>» src=«1.jpg»>
только он в ИЕ и файерфоксе работает, а в Опере — нет. Где тут ошибка?
Вот это лишнее:
Логично не создавать никакую s, а делать сразу:
У меня работает в Opera 9.50 Linux, сборка 2042.
да все уже разбрался, вынес в отдельную функцию, теперь все пашет: