Уменьшение больших изображений
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
SergeiS
- phpBB 1.4.4
- Сообщения: 157
- Зарегистрирован: 20 лет 3 месяца
- Откуда: Эстония
- Благодарил (а): 30 раз
- Поблагодарили: 8 раз
Re: Уменьшение больших изображений
попробую вернуть разговор к моду имевшему место в 2.x UploadPic
или здесь http://www.phpbb.com/community/viewtopi ... 5&t=381282
просто и эффективно работал.
Очень хочется иметь подобную функциональность в 3.x, возможно совмещенную с ресайзом и внешних картинок, например с помощью Highslide.
Желающих получить такой функционал огромное количество, достаточно почитать форумы как разработчиков так и пользователей.
Отсутствие подобной опции представляет собой серьезную проблему удобства пользования Phpbb, особенно на форумах где собираются люди не обладающими азами компьютерной грамотности и подготовка картинок своими руками представляет для них серьезную, зачастую нерешаемую проблему. После перехода на 3.x на своем форуме резко упало количество сообщений с фотоотчетами, посетители не скрывают что они не хотят связываться или элементарно не справляются со сложным для них процессом переделки картинок... Открывать загрузку тяжелых картинок на сервер тоже не выглядит разумным по целому набору причин.
или здесь http://www.phpbb.com/community/viewtopi ... 5&t=381282
просто и эффективно работал.
Очень хочется иметь подобную функциональность в 3.x, возможно совмещенную с ресайзом и внешних картинок, например с помощью Highslide.
Желающих получить такой функционал огромное количество, достаточно почитать форумы как разработчиков так и пользователей.
Отсутствие подобной опции представляет собой серьезную проблему удобства пользования Phpbb, особенно на форумах где собираются люди не обладающими азами компьютерной грамотности и подготовка картинок своими руками представляет для них серьезную, зачастую нерешаемую проблему. После перехода на 3.x на своем форуме резко упало количество сообщений с фотоотчетами, посетители не скрывают что они не хотят связываться или элементарно не справляются со сложным для них процессом переделки картинок... Открывать загрузку тяжелых картинок на сервер тоже не выглядит разумным по целому набору причин.
-
SergeiS
- phpBB 1.4.4
- Сообщения: 157
- Зарегистрирован: 20 лет 3 месяца
- Откуда: Эстония
- Благодарил (а): 30 раз
- Поблагодарили: 8 раз
Re: Уменьшение больших изображений
Нашел для себя отлично работающее решение, проверено на 3.08:
Open includes / functions_upload.php
Find
Add before
Find
Add Before
Вы можете задать другой размер, изменив значения в
$ limite_largeur = "800px";
$ limite_hauteur = "600px";
Взято отсюда: http://phpbb3.pytalhost.com/viewtopic.p ... 89&start=0
1) Убедитесь что у вас установлена библиотека GD Странная проблема с imagecreatetruecolor
2) Выделите под PHP ~96-128mb памяти
3) В настройках php прверьте значения post_max_size, upload_max_filesize
4) В настройках форума проверьте параметры максимального веса аттачмента и максимальное разрешение картинок.
Обьединив с Highslide, получаем достаточно красивый и удобный функционал. Посмотреть можно здесь: http://www.striborg.ee/forum/viewtopic. ... 97#p135606
Тестовый аккоунт:
P.S. единственное чего не хватает для моих запросов это возможности добавить простенький, текстовый watermark где-нибудь в углу фотографии. Помощь приветствуется 
Open includes / functions_upload.php
Find
Код: Выделить всё
move_file function ($ destination, $ overwrite = false, $ skip_image_check = false, $ chmod = false)Код: Выделить всё
/**
* Resize images with the true diemensions (800*600)
*/
function resize_images()
{
if ( $this->is_image() ) {
$limite_largeur = "800px";
$limite_hauteur = "600px";
$size = getimagesize($this->destination_file);
$largeur = $size[0];
$hauteur = $size[1];
if($hauteur > $limite_hauteur OR $largeur > $limite_largeur)
{
if($largeur > $limite_largeur)
{
$hauteur = $hauteur / ($largeur / $limite_largeur);
$largeur = $limite_largeur;
}
if($hauteur > $limite_hauteur)
{
$largeur = $largeur / ($hauteur / $limite_hauteur);
$hauteur = $limite_hauteur;
}
$destination = imagecreatetruecolor($largeur, $hauteur);
if ( $this->extension == "jpg" || $this->extension == "jpeg" ) $source = imagecreatefromjpeg($this->destination_file);
elseif ( $this->extension == "png" ) $source = imagecreatefrompng($this->destination_file);
elseif ( $this->extension == "gif" ) $source = imagecreatefromgif($this->destination_file);
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur, $hauteur, $size[0], $size[1]);
if ( $this->extension == "jpg" || $this->extension == "jpeg" ) imagejpeg($destination, $this->destination_file);
elseif ( $this->extension == "png" ) imagepng($destination, $this->destination_file);
elseif ( $this->extension == "gif" ) imagegif($destination, $this->destination_file);
}
}
}
Код: Выделить всё
if (sizeof ($ this-> error))
{
return false;
} phpbb_chmod ($ this-> destination_file, $ chmod);
Код: Выделить всё
if ( $this->is_image() )
{
$this->resize_images();
}
$ limite_largeur = "800px";
$ limite_hauteur = "600px";
Взято отсюда: http://phpbb3.pytalhost.com/viewtopic.p ... 89&start=0
1) Убедитесь что у вас установлена библиотека GD Странная проблема с imagecreatetruecolor
2) Выделите под PHP ~96-128mb памяти
3) В настройках php прверьте значения post_max_size, upload_max_filesize
4) В настройках форума проверьте параметры максимального веса аттачмента и максимальное разрешение картинок.
Обьединив с Highslide, получаем достаточно красивый и удобный функционал. Посмотреть можно здесь: http://www.striborg.ee/forum/viewtopic. ... 97#p135606
Тестовый аккоунт:
Код: Выделить всё
test23
test23
Последний раз редактировалось SergeiS 29.07.2011 9:02, всего редактировалось 1 раз.
-
romeo_piter
- phpBB 2.0.22
- Сообщения: 1375
- Зарегистрирован: 17 лет 5 месяцев
- Благодарил (а): 260 раз
- Поблагодарили: 32 раза
Re: Уменьшение больших изображений
Про ватермарк тут же есть: Уменьшение больших изображений
Проблема только в том, что он лепится только на изображение после ресайза, т.е. если ресайза не было - не будет ватермарка.
Проблема только в том, что он лепится только на изображение после ресайза, т.е. если ресайза не было - не будет ватермарка.
-
SergeiS
- phpBB 1.4.4
- Сообщения: 157
- Зарегистрирован: 20 лет 3 месяца
- Откуда: Эстония
- Благодарил (а): 30 раз
- Поблагодарили: 8 раз
Re: Уменьшение больших изображений
Спасибо, посмотрю. Большая часть картинок все-таки проходит через ресайз. А на маленькие картинки лучше (ИМО) и не лепить watermark.
Поигрался настройками, вполне приличный результат. Спасибо.
Поигрался настройками, вполне приличный результат. Спасибо.
Последний раз редактировалось SergeiS 29.07.2011 9:03, всего редактировалось 1 раз.
-
Alexandr_Sergeevich
- phpBB 1.4.1
- Сообщения: 48
- Зарегистрирован: 16 лет 1 месяц
- Благодарил (а): 10 раз
- Поблагодарили: 3 раза
Re: Уменьшение больших изображений
Подскажите на версии 3.0.9 тоже работает этот хак.
Все делаю как написано в инструкции, проверил все пункты 1, 2, 3, 4. В четвертом поставил максимальный размер веса аттачмента 5mb и максимальное разрешение картинок 4000 х 4000px
Загружаю на форуме картинку с помощью вложения, картинка загружается, обновляется страница и ... появляется надпись "Удаленный сервер или файл не найден".
Кто подскажет, в чем я ошибся? Или хак не подходит для версии 3.0.9?
Добавлено спустя 1 час 46 минут 38 секунд:
Разобрался, лучше устанавливать хак по этой документации, пробовал ставить по инструкции которая на этом форуме не получается, постоянно выскакивает "Удаленный сервер или файл не найден". На версии phpBB 3.0.9 работает!
Все делаю как написано в инструкции, проверил все пункты 1, 2, 3, 4. В четвертом поставил максимальный размер веса аттачмента 5mb и максимальное разрешение картинок 4000 х 4000px
Загружаю на форуме картинку с помощью вложения, картинка загружается, обновляется страница и ... появляется надпись "Удаленный сервер или файл не найден".
Кто подскажет, в чем я ошибся? Или хак не подходит для версии 3.0.9?
Добавлено спустя 1 час 46 минут 38 секунд:
Разобрался, лучше устанавливать хак по этой документации, пробовал ставить по инструкции которая на этом форуме не получается, постоянно выскакивает "Удаленный сервер или файл не найден". На версии phpBB 3.0.9 работает!
-
sweetah
- phpBB 2.0.6
- Сообщения: 506
- Зарегистрирован: 16 лет 7 месяцев
- Благодарил (а): 108 раз
- Поблагодарили: 26 раз
Re: Уменьшение больших изображений
Хороший скрипт. Единственный минус - жпег сохраняется очень сильно ужатым, качество страдает. Где можно подкрутить? В самом коде не вижу. GD вообще как-то настраивается?
-
Vova_OB
- phpBB 2.0.2
- Сообщения: 310
- Зарегистрирован: 16 лет 3 месяца
- Откуда: Kiev Ukraine
- Благодарил (а): 74 раза
- Поблагодарили: 8 раз
Re: Уменьшение больших изображений
Вопрос на засыпку!!!!
вот инструкция отлично работает http://phpbb3.pytalhost.com/viewtopic.p ... 89&start=0
Как в заменить цифры размеров на подгрузку этих цифр из бд ?
как 800 заменить на $config['img_max_width'] ?
как 600 заменить на $config['img_max_height'] ?
вот инструкция отлично работает http://phpbb3.pytalhost.com/viewtopic.p ... 89&start=0
Как в заменить цифры размеров на подгрузку этих цифр из бд ?
Код: Выделить всё
$limite_largeur = "800px";
$limite_hauteur = "600px";как 600 заменить на $config['img_max_height'] ?
-
Pazh
- Former team member
- Сообщения: 2317
- Зарегистрирован: 16 лет 10 месяцев
- Благодарил (а): 42 раза
- Поблагодарили: 506 раз
Re: Уменьшение больших изображений
найти
добавить перед
Заменить
на
Код: Выделить всё
if ( $this->is_image() ) {Код: Выделить всё
global $config;Код: Выделить всё
$limite_largeur = "800px";
$limite_hauteur = "600px";Код: Выделить всё
$limite_largeur =$config['img_max_width'];
$limite_hauteur = $config['img_max_height'];Помощь в ЛС/email только за WM или ЮMoney
-
NeSlava
- phpBB 1.2.1
- Сообщения: 22
- Зарегистрирован: 15 лет 7 месяцев
- Откуда: Обнинск
- Благодарил (а): 8 раз
- Поблагодарили: 8 раз
Re: Уменьшение больших изображений
Как-то разбирался с ресайзом на чужом форуме. Прочитал этот топик, протестил на своем локальном форуме. Полез на другой форум ставить, а там стоял Advanced BBCode Box 3. Все просто надо было настроить в админке.
Как один из вариантов, думаю, тоже подайдет!
Как один из вариантов, думаю, тоже подайдет!
-
sweetah
- phpBB 2.0.6
- Сообщения: 506
- Зарегистрирован: 16 лет 7 месяцев
- Благодарил (а): 108 раз
- Поблагодарили: 26 раз
Re: Уменьшение больших изображений
NeSlava, там не затрагивается сам файл физически. Скрипт просто уменьшает картинку визуально, но файл остается с таким же весом и разрешением.
-
SergeiS
- phpBB 1.4.4
- Сообщения: 157
- Зарегистрирован: 20 лет 3 месяца
- Откуда: Эстония
- Благодарил (а): 30 раз
- Поблагодарили: 8 раз
Re: Уменьшение больших изображений
Посмотрите здесь, возможно наведет на мысли http://php.about.com/od/advancedphp/ss/ ... nail_3.htmsweetah писал(а):Хороший скрипт. Единственный минус - жпег сохраняется очень сильно ужатым, качество страдает. Где можно подкрутить? В самом коде не вижу. GD вообще как-то настраивается?
Но если это вы пробовали выкладывать тестовую картинку, то проблема в вашей оригинальной фотографии - сдернули в момент снимка, фокус отсутствует. Посмотрите в тестовом форуме другие картинки с нормальным фокусом.
Например вот это сжато в три раза по разрешению от оригинала, причем фокус тоже не идеален: Линк
-
sweetah
- phpBB 2.0.6
- Сообщения: 506
- Зарегистрирован: 16 лет 7 месяцев
- Благодарил (а): 108 раз
- Поблагодарили: 26 раз
Re: Уменьшение больших изображений
SergeiS, не понял при чем здесь фокус. Я говорю о качестве, в котором сохраняется jpg. На глаз оно примерно 50%. И по очень маленькому весу конечной фотографии можно понять. И на вашем фото видны артефакты компрессии. Попробуйте в качестве эксперимента взять качественную фотографию (или даже лучше иллюстрацию с большим количеством крупных деталей - виднее будет) и ресайзнуть её в фотошопе и сохранить в максимальном качестве. Потом с помощью скрипта проделать то же самое (главное чтоб разрешение совпадало). И сравните результаты 
Да чего я распинаюсь - пощелкайте две картинки туда-обратно.
http://i26.fastpic.ru/big/2011/0729/6b/ ... 7b786b.jpg
http://i26.fastpic.ru/big/2011/0729/35/ ... 4dbb35.jpg
За ссылку спасибо, мысли появились, но скрипт доделать не получилось. Пробовал вставлять
Да чего я распинаюсь - пощелкайте две картинки туда-обратно.
http://i26.fastpic.ru/big/2011/0729/6b/ ... 7b786b.jpg
http://i26.fastpic.ru/big/2011/0729/35/ ... 4dbb35.jpg
За ссылку спасибо, мысли появились, но скрипт доделать не получилось. Пробовал вставлять
imagejpeg($destination, null, 100);-
Vova_OB
- phpBB 2.0.2
- Сообщения: 310
- Зарегистрирован: 16 лет 3 месяца
- Откуда: Kiev Ukraine
- Благодарил (а): 74 раза
- Поблагодарили: 8 раз
Re: Уменьшение больших изображений
Вопрос по этому скрипту :
http://phpbb3.pytalhost.com/viewtopic.p ... 89&start=0
Он как нагружает сервер?
Он обрабатывает фотки во время загрузки на ПК или на Сервере?
http://phpbb3.pytalhost.com/viewtopic.p ... 89&start=0
Он как нагружает сервер?
Он обрабатывает фотки во время загрузки на ПК или на Сервере?
-
SergeiS
- phpBB 1.4.4
- Сообщения: 157
- Зарегистрирован: 20 лет 3 месяца
- Откуда: Эстония
- Благодарил (а): 30 раз
- Поблагодарили: 8 раз
Re: Уменьшение больших изображений
Да вроде практически не нагружает сервер, только требует побольше памяти под PHP.
Это физическое уменьшение файлов картинок на сервере. То есть оригинальный файл размером в 5000 пикселей и весом в несколько мегабайт будет преобразован на сервере во время upload в файл размером 1200 пикселей и весом в сотни килобайт и уже только в таком виде будет сохранен на сервере.
Это физическое уменьшение файлов картинок на сервере. То есть оригинальный файл размером в 5000 пикселей и весом в несколько мегабайт будет преобразован на сервере во время upload в файл размером 1200 пикселей и весом в сотни килобайт и уже только в таком виде будет сохранен на сервере.
-
Змей_24
- phpBB 1.0.0
- Сообщения: 9
- Зарегистрирован: 15 лет 8 месяцев
- Откуда: Красноярск
- Благодарил (а): 3 раза
- Поблагодарили: 1 раз
Re: Уменьшение больших изображений
Доброго !
Всех с наступившим ...
При попытке использования хака для ресайзинга получаю ошибку:
[phpBB Debug] PHP Notice: in file /includes/functions_upload.php on line 268: getimagesize() [function.getimagesize]: Filename cannot be empty
Помогите пожалуйста ее исправить.
Стиль: subsilver2
Версия phpBB: 3.0.5
п.с. прошу прощения за вопросы по не актуальной версии ...
Всех с наступившим ...
При попытке использования хака для ресайзинга получаю ошибку:
[phpBB Debug] PHP Notice: in file /includes/functions_upload.php on line 268: getimagesize() [function.getimagesize]: Filename cannot be empty
Помогите пожалуйста ее исправить.
Стиль: subsilver2
Версия phpBB: 3.0.5
п.с. прошу прощения за вопросы по не актуальной версии ...
С уважением, Сергей.

