Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.
[Beta] Водяной знак на вложенные изображения
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ).
Re: [Beta] Водяной знак на вложенные изображения
Всем привет!
Не знаю в чем была проблема, возможно в конфликте с мультизагрузчиком. (скорее всего).
Правда пришлось полностью переустановить весь форум (работающий 4 года) но теперь все работает! Ура.
Огромная благодарность автору за мод!
Не знаю в чем была проблема, возможно в конфликте с мультизагрузчиком. (скорее всего).
Правда пришлось полностью переустановить весь форум (работающий 4 года) но теперь все работает! Ура.
Огромная благодарность автору за мод!
-
- Former team member
- Сообщения: 2217
- Стаж: 15 лет 3 месяца
- Благодарил (а): 236 раз
- Поблагодарили: 561 раз
- Контактная информация:
Re: [Beta] Водяной знак на вложенные изображения
С каким мультизагрузчиком? Я же на предыдущей странице написал, что ставил этот мод вместе с мультизагрузчиком, и конфликтов у них нет.xalexz писал(а):возможно в конфликте с мультизагрузчиком. (скорее всего).
В кривой установке твоя проблема была, либо в кривом форуме. "Старые" форумы часто этим страдают.
-
- Former team member
- Сообщения: 1965
- Стаж: 14 лет
- Благодарил (а): 67 раз
- Поблагодарили: 799 раз
- Контактная информация:
[Path] Водяной знак на вложенные изображения
Небольшие изменения для инструкции. includes/functions_upload.php
В случае если не возможно наложить изображение, то загрузить как есть, а не выдавать ошибку.
Найти и удалить
Каждый этап можно делать не зависимо, т.е. выбрать именно то что вам нужно.
Устраняем всякое возможное влияние на загрузку аватар
//Правка includes/functions_user.php(в инструкции) в дальнейшем уже не потребуется.
Найти
Заменить на
Найти
Код: Выделить всё
// Image Watermark Mod Start -->
if (!isset($config['user_confirm_watermark']) || !$config['user_confirm_watermark'])
{
$wm_lock = true;
}
if ($this->is_image() && isset($config['img_create_watermark']) && $config['img_create_watermark'] && $wm_lock)
{
$this->watermark_images($this->extension);
}
// <-- Image Watermark Mod End
Код: Выделить всё
// Image Watermark Mod Start -->
if (!isset($config['user_confirm_watermark']) || !$config['user_confirm_watermark'])
{
$wm_lock = true;
}
if ($this->is_image() && isset($config['img_create_watermark']) && $config['img_create_watermark'] && $wm_lock && $_GET['mode'] != "avatar")
{
$this->watermark_images($this->extension);
}
// <-- Image Watermark Mod End
Исключаем проблему с загрузкой анимации gif
Анимация всё равно будет загружена, пусть даже без наложения изображения.
Найти
Заменить на
Ну и конечно в language/язык/common.php правку
Найти
Код: Выделить всё
if ($this->is_ani($this->destination_file))
{
$this->error[] = sprintf($user->lang[$this->upload->error_prefix . 'ANIMATE_GIF_WM_INWALID'], $this->destination_file);
}
Код: Выделить всё
if ($this->is_ani($this->destination_file))
{
$wn_types = false;
$type = false;
}
ANIMATE_GIF_WM_INWALID
уже тоже не придётся делать.На изображения будет наложен разный watermark, из расчёта размера изображений
spacer.gif - Можно изменить на другое изображение в gif.
Найти
Вставить после
Найти
Код: Выделить всё
$water = imagecreatefrompng('images/watermark.png');
Код: Выделить всё
if (imagesx($img) < imagesx($water)*3)
{
$water = imagecreatefrompng('images/watermark_med.png');
if (imagesx($img) < imagesx($water)*3)
{
$water = imagecreatefrompng('images/watermark_mini.png');
if (imagesx($img) < imagesx($water)*3)
{
$water = imagecreatefrompng('images/watermark_zero.png');
if (imagesx($img) < imagesx($water)*3)
{
$water = imagecreatefromgif('images/spacer.gif');
}
}
}
}
Найти и удалить
Код: Выделить всё
else
{
$this->error[] = sprintf($user->lang['IMAGE_TYPE_WM_INWALID'], $type);
}
- Вложения
-
- images.zip
- Watermark с разнами размерами
- (9.74 КБ) 313 скачиваний
Последний раз редактировалось Anvar 12.10.2014 10:52, всего редактировалось 3 раза.
Не пишите вопросы лично, если можете задать их на форуме!
Спецзаказы не интересуют!
Спецзаказы не интересуют!
-
- Former team member
- Сообщения: 1965
- Стаж: 14 лет
- Благодарил (а): 67 раз
- Поблагодарили: 799 раз
- Контактная информация:
Re: [Beta] Водяной знак на вложенные изображения
Кстати интересный баг обнаружен, если стоит phpBB Gallery, то при загрузке изображений в галерею подхватывается этот водяной знак, а если в ней настроен свой, то они отобразятся оба.
Пока не решал эту проблему, разместил по разным углам.
Пока не решал эту проблему, разместил по разным углам.
Re: [Beta] Водяной знак на вложенные изображения
Я сделал по другому: добавил автоматический ресайз водяного знака.
include/functions_upload.php
Коэффициенты подобраны эмпирически, для меня. Знак должен занимать 1/3 изображения по ширине. При этом, если он больше, чем 1/6 изображения по высоте, то он пропорционально уменьшается.
include/functions_upload.php
Коэффициенты подобраны эмпирически, для меня. Знак должен занимать 1/3 изображения по ширине. При этом, если он больше, чем 1/6 изображения по высоте, то он пропорционально уменьшается.
Код: Выделить всё
$sx = imagesx($img);
$sy = imagesy($img);
$ix = imagesx($water);
$iy = imagesy($water);
if( $ix!=0 && $iy!=0 )
{
$newix = intval($sx/3);
$newiy = intval($newix*$iy/$ix);
if ( $newiy>intval($sy/6) )
{
$newiy = intval($sy/6);
$newix = intval($ix*$newiy/$iy);
}
$thumb = imagecreatetruecolor($newix, $newiy);
imagealphablending($thumb, false);
imagesavealpha($thumb, true);
$transparent = imagecolorallocatealpha($thumb, 255, 255, 255, 127);
imagefilledrectangle($thumb, 0, 0, $newix, $newiy, $transparent);
imagecopyresampled($thumb, $water, 0, 0, 0, 0, $newix, $newiy, $ix, $iy);
$im = $watermark->create_watermark($img, $thumb, $config['watermark_opacity'], $config['default_position']);
if (isset($im))
{
switch ($type)
{
case 'jpg':
imagejpeg($im, $this->destination_file);
break;
case 'gif':
imagegif($im, $this->destination_file);
break;
case 'png':
imagepng($im, $this->destination_file);
break;
}
}
else
{
$this->error[] = sprintf($user->lang[$this->upload->error_prefix . 'GENERAL_UPLOAD_ERROR'], $this->destination_file);
}
}
else
{
$this->error[] = sprintf($user->lang['IMAGE_TYPE_WM_INWALID'], $type);
}
Re: [Beta] Водяной знак на вложенные изображения
В каком месте надо сделать эту вставку? После строки?kolu4iy писал(а):Я сделал по другому: добавил автоматический ресайз водяного знака.
include/functions_upload.php
Коэффициенты подобраны эмпирически, для меня. Знак должен занимать 1/3 изображения по ширине. При этом, если он больше, чем 1/6 изображения по высоте, то он пропорционально уменьшается.
Код: Выделить всё
$water = imagecreatefrompng('images/watermark.png');
Re: [Beta] Водяной знак на вложенные изображения
Да.
Для однозначности весь текст подправленной функции watermark_images:
Для однозначности весь текст подправленной функции watermark_images:
Код: Выделить всё
function watermark_images($type)
{
global $config, $user;
$wn_types = unserialize($config['wm_img_type']);
if ($this->is_ani($this->destination_file))
{
$this->error[] = sprintf($user->lang[$this->upload->error_prefix . 'ANIMATE_GIF_WM_INWALID'], $this->destination_file);
}
if ($type == 'jpeg')
{
$type = 'jpg';
}
if (in_array($type, $wn_types))
{
$file = $this->destination_file;
$watermark = new watermark();
switch ($type)
{
case 'jpg':
$img = imagecreatefromjpeg($this->destination_file);
break;
case 'gif':
$img = imagecreatefromgif($this->destination_file);
break;
case 'png':
$img = imagecreatefrompng($this->destination_file);
break;
default:
$this->error[] = sprintf($user->lang['IMAGE_TYPE_WM_INWALID'], $type);
return;
break;
}
$water = imagecreatefrompng('images/watermark.png');
$sx = imagesx($img);
$sy = imagesy($img);
$ix = imagesx($water);
$iy = imagesy($water);
if( $ix!=0 && $iy!=0 )
{
$newix = intval($sx/3);
$newiy = intval($newix*$iy/$ix);
if ( $newiy>intval($sy/6) )
{
$newiy = intval($sy/6);
$newix = intval($ix*$newiy/$iy);
}
$thumb = imagecreatetruecolor($newix, $newiy);
imagealphablending($thumb, false);
imagesavealpha($thumb, true);
$transparent = imagecolorallocatealpha($thumb, 255, 255, 255, 127);
imagefilledrectangle($thumb, 0, 0, $newix, $newiy, $transparent);
imagecopyresampled($thumb, $water, 0, 0, 0, 0, $newix, $newiy, $ix, $iy);
$im = $watermark->create_watermark($img, $thumb, $config['watermark_opacity'], $config['default_position']);
if (isset($im))
{
switch ($type)
{
case 'jpg':
imagejpeg($im, $this->destination_file);
break;
case 'gif':
imagegif($im, $this->destination_file);
break;
case 'png':
imagepng($im, $this->destination_file);
break;
}
}
else
{
$this->error[] = sprintf($user->lang[$this->upload->error_prefix . 'GENERAL_UPLOAD_ERROR'], $this->destination_file);
}
}
else
{
$this->error[] = sprintf($user->lang['IMAGE_TYPE_WM_INWALID'], $type);
}
}
else
{
$this->error[] = sprintf($user->lang['IMAGE_TYPE_WM_INWALID'], $type);
}
}
Re: [Beta] Водяной знак на вложенные изображения
kolu4iy при использовании автоматического ресайза водяного знака при заливке фото через tapatalk, выдается ошибка - jpg не поддерживается для установки водяного знака (
Re: [Beta] Водяной знак на вложенные изображения
Возможно, что это от того, что в коде жестко прописаноkolu4iy при использовании автоматического ресайза водяного знака при заливке фото через tapatalk, выдается ошибка - jpg не поддерживается для установки водяного знака (
Код: Выделить всё
$water = imagecreatefrompng('images/watermark.png');
Вообще код достаточно прозрачный, но лично мне, если честно, не хочется поднимать копию форума, ставить туда tapatalk, и ловить место, где будет ругаться php. Буду рад если коллеги с уже установленным tapatalk подскажут куда копать - возможно, что с его (tapatalk) установкой стандартный процесс загрузки вложений как-то меняется, и данная функция получает, например, уже измененный тип картинки (не .jpg).
Re: [Beta] Водяной знак на вложенные изображения
Файл лежит именно по указанному пути.kolu4iy писал(а):У вас сам водяной знак - лежит в images/watermark.png? И он точно .png?
После вставки кода по ресайзу водяного знака со стационарной машины загрузка работает без ошибок. Ошибка возникает только при использовании на мобильном устройстве через приложение tapatalk.
Вернул код как было изначально, т.е. убрал авторесайз ватермарка. На данный момент этот ресайз не критичен.
Но спасибо за отклик.
- romaamor
- phpBB 3.0.2
- Сообщения: 2081
- Стаж: 11 лет 11 месяцев
- Откуда: Одесса
- Благодарил (а): 707 раз
- Поблагодарили: 161 раз
- Контактная информация:
Re: [Beta] Водяной знак на вложенные изображения
Добрый день. После установки этого мода ( Установку перепроверил ), и после загрузки любого вложения, страница перезагружается пустой. Что может быть ?
- Татьяна5
- Поддержка
- Сообщения: 12372
- Стаж: 12 лет 7 месяцев
- Благодарил (а): 223 раза
- Поблагодарили: 3517 раз
- Контактная информация:
Re: [Beta] Водяной знак на вложенные изображения
romaamor, ошибка в установке или конфликт с другим модом
Что пишет дебаг? Что в логах сервера?
Что пишет дебаг? Что в логах сервера?
- romaamor
- phpBB 3.0.2
- Сообщения: 2081
- Стаж: 11 лет 11 месяцев
- Откуда: Одесса
- Благодарил (а): 707 раз
- Поблагодарили: 161 раз
- Контактная информация:
Re: [Beta] Водяной знак на вложенные изображения
Как бы ругается на ошибку в шаблоне constants.phpТатьяна5 писал(а):Что пишет дебаг? Что в логах сервера?
[Wed Jun 18 13:47:08 2014] [error] [client 95.111.239.16] PHP Notice: Constant THANKS_TABLE already defined in /home/vladr546/domains/satray.ru/public_html/includes/constants.php on line 326, referer: http://satray.ru/
- Татьяна5
- Поддержка
- Сообщения: 12372
- Стаж: 12 лет 7 месяцев
- Благодарил (а): 223 раза
- Поблагодарили: 3517 раз
- Контактная информация:
Re: [Beta] Водяной знак на вложенные изображения
Это из мода thanks for postromaamor писал(а):Constant THANKS_TABLE already defined
Сколько у вас в
/includes/constants.php
строк с THANKS_TABLE
? Должна быть одна- romaamor
- phpBB 3.0.2
- Сообщения: 2081
- Стаж: 11 лет 11 месяцев
- Откуда: Одесса
- Благодарил (а): 707 раз
- Поблагодарили: 161 раз
- Контактная информация:
Re: [Beta] Водяной знак на вложенные изображения
Прописано дважды
Код: Выделить всё
define('THANKS_TABLE', $table_prefix . 'thanks');