Перейти к контенту
  • 0

Уменьшение прикреплённых картинок


eXed

Вопрос

на форум постятся картинки, порой они сильн обольшие,а меньше нельзя ... есть ли решения в данной области - задачи - удобство просмотра, неразрыность дизайна при любом изначальном размере. Я думал внедрить что-нибудь типа http://javascriptkit.com/script/script2/imagezoom.shtml. может есть уже готовые и более продвинутые варианты?
Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Начнём с того, что под 1.2 - 1.3 это встроенная возможность; просто заходим в админцентр и настраиваем. Единственный минус - под этими версиями не уменьшается вес картинок (т.е. картинка просто при выводе подгоняется по размеру к указанным значениям, но thumbnail не создаётся).

Под 2.0 всё вообще в шоколаде - можно поставить как уменьшение размеров картинок, так и автоматическое создание thumbnail'ов уменьшенного размера при помощи GD.

Под 1.1, если он у кого-то ещё остался, есть соответствующие моды. Их можно найти как у нас на форуме: Поиск по слову: "уменьшен", так и на mods.invisionize.com.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

theIggs

хорошо, все понятно, можешь сказать на сколько сложно реализовать такую феньку

Добавлено в [mergetime]1095238164[/mergetime]

Если картинка превышает заданый размер , то на ее полноразмерный вариант создается линка, открывающаяся в _blank

Добавлено в [mergetime]1095238294[/mergetime]

речь идет о 1.3

 

с кодом вся ясно, скажи только куда его вписать? чтоыб ссылку формировать. и чтобы были известны параметры заданые на админской.

Ссылка на комментарий
Поделиться на других сайтах

  • 0
хорошо, все понятно, можешь сказать на сколько сложно реализовать такую феньку

Не понял, чем тебя стандарт не устраивает? Зачем реализовывать то, что уже реализовано?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

theIggs

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

----

задача ставится из имеющего получить что-то с минимальнымы усилиями...

Ссылка на комментарий
Поделиться на других сайтах

  • 0

нашел тему в которой рассказывается о том, что мне требовалось, а именно:

 

 

---------------------------------------------------------------------------
Imageresize for IBF1.1  (original von ocb)
E-Mail:      opa@invisionpower.de
Web-Seite:   http://opa.invisionpower.de
MSN:         opa@invisionpower.de
ICQ:         94767822
---------------------------------------------------------------------------

Imageresizing .. for IBF 1.1 (original von ocb)

save skin_topic

open skin_topic
find (ca. line 300)


EOF;
}
function Show_attachments_img($data) {
global $ibforums;
return <<<EOF
<br><br><center><b>{$ibforums->lang['pic_attach']}</b></center><br>
<table cellpadding='4' cellspacing='0' border='0' width='50%' align='center' class='fancyborder'>
<tr>
EOF;
}

replace that with:


EOF;
}
function Show_attachments_img($data) {
global $ibforums;
return <<<EOF
<br><br><center><b>{$ibforums->lang['pic_attach']}</b></center><br>
<table cellpadding='4' cellspacing='0' border='0' width='50%' align='center' class='fancyborder'>
<tr>
 <td valign='middle' align='center'><img src='{$ibforums->vars['upload_url']}/{$data['file_name']}' border='0'
onload="javascript:if(this.width > screen.width-300)this.width = (screen.width-300)" onclick="javascript:window.open('{$ibforums->vars['upload_url']}/{$data['file_name']}','',& #39;scrollbars=1,toolbar=0,resizable=1,menubar=0,d
irectories=0,status=0')"></td>
</tr>
</table>
<p>

EOF;
}


save, close and upload

Добавлено в [mergetime]1095932627[/mergetime]

для IPB 1.3 сделал так

 

HTML -> Topic view Section -> Attachments: Show Image

 

<img src='{ibf.vars.upload_url}/$file_name' class='attach' alt='{ibf.lang.pic_attach}' onload="javascript:if(this.width > screen.width-800)this.width = (screen.width-800)" onclick="javascript:window.open('{ibf.vars.upload_url}/$file_name','','scrollbars=1,toolbar=0,resizable=1,menubar=0,directories=0,status=0')" style="cursor: hand"/>

Добавлено в [mergetime]1095932693[/mergetime]

тему можно считать закрытой :D

Ссылка на комментарий
Поделиться на других сайтах

  • 0

theIggs да есть функция, но она не гибкая, сегодня покавырялся ... и маленько изменил код.

 

Делать правда иногда нечего, хочется поломать голову, вот изменил функцию, малость разобрался, как вообще все это дело работает (форум) - работал в safemode, приходилось править базу, в общем сталкнулся с множеством интересных вещей

 

к функции HTML -> Topic view Section -> Attachments: Show Image добавил еще два параметра.

 

function Show_attachments_img($file_name, $width = '', $height = '')

 

В файлике Topics.php

 

/*
$ibforums->vars['upload_url']
заменяем на 
$ibforums->vars['upload_dir']
для того, если на сервере отключена возмжность использывания GetImageSize через HTTP. 
*/
                                                $img_size = array();

                                                $img_size = @GetImageSize( $ibforums->vars['upload_dir']."/".$row['attach_id'] );


                                        if ( $ibforums->vars['siu_thumb'] AND $ibforums->vars['siu_width'] AND $ibforums->vars['siu_height'] )
                                        {
                                                //----------------------------------------------------
                                                // Tom Thumb!
                                                //----------------------------------------------------
//выносим за условие                                                $img_size = array();

//выносим за условие                                                $img_size = @GetImageSize( $ibforums->vars['upload_url']."/".$row['attach_id'] );

 

HTML -> Topic view Section -> Attachments: Show Image - сожержимое

 

<br />
<br />
<strong><span class='edit'>{$ibforums->lang['pic_attach']}</span></strong>
<br />
<img src='{ibf.vars.upload_url}/$file_name' width='$width' class='attach' alt='{ibf.lang.pic_attach}' onload="javascript:if(this.width > window.document.body.clientWidth-200)this.width = (window.document.body.clientWidth-300);" onclick="javascript:window.open('{ibf.vars.upload_url}/$file_name','','width=$width,height=$height, scrollbars=1,toolbar=0,resizable=1,menubar=0,directories=0,status=0')" style="cursor: hand" />

 

использывалась переменая 'window.document.body.clientWidth' заместо 'screen.width' - теперь картинка уменьшается в зависимости от размера окна - т.е. корректно масштабируется при разных размерах, алгоритм вычисления еще стоит доработать, но суть надеюсь понятна.

 

желающие могут не использывать "onclick" для открытия полноразмерной картинки, достаточно заключить ее в тег <a href={ibf.vars.upload_url}/$file_name' target='_blank'><img....></a>, но мне больше нравится открывать окно по размеру картники и без лишних кнопочек, статусбаров и т.д.

 

-------------

Использывать Show_attachments_img_thumb($file_name, $width, $height, $aid) без изменений не получится для данной задачи, хотя код в Topisc.php для данной функции подправить проще, чем дополнять параметрами Show_attachments_img() в SAfeMode :D

-------------

 

осталась одна не решеная задача в JS используется "onload", т.е. пока картинка не загрузится полность - а в этот момент (в момент загрузки ) она будет отображатся в натуральную велечену - поэтому выходит (рвет форум) за "границы дозволеного" и масштабируется только после загрузки всей картинки (нужно пошарить на архивах JS скриптов, может что-нибудь найдется гибкое ;) .

Добавлено в [mergetime]1096006046[/mergetime]

Gorath

в админской HTML -> Topic view Section -> Show_attachments_img_thumb

Добавлено в [mergetime]1096007586[/mergetime]

как бета варинт - более быстрого ресайза картинки , решил попробывать layer, но блин на выдилинке непонятно - есть результат или нет, картинка загружается сильно быстро.

 

<layer onload="javascript:if(document.img1.width > window.document.body.clientWidth-200)document.img2.width = (window.document.body.clientWidth-300);">
<img src='{ibf.vars.upload_url}/$file_name' width='$width' class='attach' alt='{ibf.lang.pic_attach_thumb}' onload="javascript:if(this.width > window.document.body.clientWidth-200)this.width = (window.document.body.clientWidth-300);" onclick="javascript:window.open('{ibf.vars.upload_url}/$file_name','','width=$width,height=$height, scrollbars=1,toolbar=0,resizable=1,menubar=0,directories=0,status=0')" style="cursor: hand" id='img1'/>
</layer>

Добавлено в [mergetime]1096008962[/mergetime]

нет, данный способ тоже не фунциклирует. а жаль, будем искать дальше.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

theIggs с маленькой паузой, но уменьшалка была добита : )

 

Каждый пользователь, в частном порядке! - может устанавливать степень сжатия отображаемой картинки. Предел значений от 10 до 100.

 

Пришлось задействовать внешний скрипт, но это даже удобней.

 

пример:resized

 

полноразмерный вариант: Full size

 

управление всей этой байдой с админской+

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.