В связи с тем, что расширение Editor of attachments (quoting, watermark) больше не поддерживается интересует реализация его функций. Может уже есть готовые решения по отдельности. Подскажите, пожалуйста?
1. Сжатие картинок. В Editor of attachments я выставлял качество джипег 70% и загруженный файл из 500 кил - 2 мега становился 60-100 кил. Значительно экономит место на хостинге.
2. Водяной знак на фото.
3. Цитирование вложений как изображений в тегах img.
Работа с фото вложениями
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB3.1.x/3.3.x | FAQ | Как задавать вопросы | Как устанавливать расширения
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение

-
- phpBB 2.0.0
- Сообщения: 206
- Стаж: 15 лет 6 месяцев
- Благодарил (а): 131 раз
- Поблагодарили: 63 раза
Re: Работа с фото вложениями
Я для себя нашел временный выход в том, чтобы вставить нужные мне функции - сжатие и автоповорот (это из другого расширения "Image Rotator") напрямую в phpbb/files/filespec.php
Жду, пока появится что-то более цивилизованное. Потому, что, например, встроенное в движок сжатие фото не так сильно сжимает, как Editor of attachments, даже если там выставить те же 70%. При ежедневной заливке сотен фотографий Editor of attachments экономил прилично дискового пространства.
-
- phpBB 2.0.7
- Сообщения: 567
- Стаж: 8 лет 4 месяца
- Благодарил (а): 241 раз
- Поблагодарили: 52 раза
Re: Работа с фото вложениями
Можно подробнее?Джим писал(а): 19.05.2017 18:45Я для себя нашел временный выход в том, чтобы вставить нужные мне функции - сжатие и автоповорот (это из другого расширения "Image Rotator") напрямую в phpbb/files/filespec.php
-
- phpBB 2.0.0
- Сообщения: 206
- Стаж: 15 лет 6 месяцев
- Благодарил (а): 131 раз
- Поблагодарили: 63 раза
Re: Работа с фото вложениями
А что подробнее? Исковеркал filespec.php, вставив туда самопальную функцию сжатия и автоповорота, основанную на вышеуказанных расширениях. Или Вам код показать? Он может криво работать, т.к. я не профи.
-
- phpBB 2.0.7
- Сообщения: 567
- Стаж: 8 лет 4 месяца
- Благодарил (а): 241 раз
- Поблагодарили: 52 раза
Re: Работа с фото вложениями
Я тем более не профи. Покажите пожалуйста код. И куда вставлять. Может гуру посмотрят и оформят его в виде отдельного расширения.
-
- phpBB 2.0.0
- Сообщения: 206
- Стаж: 15 лет 6 месяцев
- Благодарил (а): 131 раз
- Поблагодарили: 63 раза
Re: Работа с фото вложениями
Вот мой вариант:
Открыть phpbb/files/filespec.php
Найти
Добавить перед
Найти
Добавить перед
Я сжимаю до 1024х768, но внутри кода это можно изменить, так же, как и компрессию.
Открыть phpbb/files/filespec.php
Найти
Код: Выделить всё
try
{
$this->filesystem->phpbb_chmod($this->destination_file, $chmod);
Код: Выделить всё
if ( $this->is_image() )
{
$this->resize_images();
}
Код: Выделить всё
/**
* Performing additional checks
Код: Выделить всё
function resize_images()
{
if ( $this->is_image() )
{
$exif = @exif_read_data($this->destination_file, 0, true);
if(isset($exif['IFD0']['Orientation']))
{
$source = imagecreatefromjpeg($this->destination_file);
$rotate = true;
switch($exif['IFD0']['Orientation'])
{
case 3: // 180 rotate left
$rotate = imagerotate($source, 180, 0);
break;
case 6: // 90 rotate right
$rotate = imagerotate($source, -90 ,0);
break;
case 8: // 90 rotate left
$rotate = imagerotate($source, 90, 0);
break;
default:
$rotate = false;
break;
}
if($rotate)
{
unlink($this->destination_file);
imagejpeg($rotate, $this->destination_file, 100);
}
}
$limit_width = 1024;
$limit_height = 768;
$quality = 70;
$size = getimagesize($this->destination_file);
$width = $size[0];
$height = $size[1];
if($height > $limit_height OR $width > $limit_width)
{
$int_factor = min(($limit_width / $width), ($limit_height / $height));
$width = round($width * $int_factor);
$height = round($height * $int_factor);
$destination = imagecreatetruecolor($width, $height);
if ( $this->extension == "jpg" || $this->extension == "jpeg" )
{
@ini_set('gd.jpeg_ignore_warning', 1);
$source = imagecreatefromjpeg($this->destination_file);
}
elseif ( $this->extension == "png" )
{
@imagealphablending($destination, false);
@imagesavealpha($destination, true);
$source = imagecreatefrompng($this->destination_file);
}
elseif ( $this->extension == "gif" )
{
$source = imagecreatefromgif($this->destination_file);
$trnprt_indx = imagecolortransparent($source);
if ($trnprt_indx >= 0) //transparent
{
$trnprt_color = imagecolorsforindex($source, $trnprt_indx);
$trnprt_indx = imagecolorallocate($destination, $trnprt_color['red'], $trnprt_color['green'], $trnprt_color['blue']);
imagefill($destination, 0, 0, $trnprt_indx);
imagecolortransparent($destination, $trnprt_indx);
}
}
imagecopyresampled($destination, $source, 0, 0, 0, 0, $width, $height, $size[0], $size[1]);
if ( $this->extension == "jpg" || $this->extension == "jpeg" ) imagejpeg($destination, $this->destination_file, $quality);
elseif ( $this->extension == "png" ) imagepng($destination, $this->destination_file);
elseif ( $this->extension == "gif" ) imagegif($destination, $this->destination_file);
imagedestroy($destination);
}
}
}
-
- phpBB 2.0.7
- Сообщения: 567
- Стаж: 8 лет 4 месяца
- Благодарил (а): 241 раз
- Поблагодарили: 52 раза
Re: Работа с фото вложениями
Спасибо. Может кто подскажет как (если пойму конечно) или сделает эти правки в виде отдельного расширения.