Перейти к контенту
  • 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

 

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

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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