Увеличить размер вложений PNG

Вопросы без привязки к версии. Установлена авточистка (2 года).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
rudtp_pp
phpBB 1.4.1
Сообщения: 46
Стаж: 9 лет 1 месяц
Благодарил (а): 18 раз
Поблагодарили: 2 раза

Увеличить размер вложений PNG

Сообщение rudtp_pp »

Добрый день!
В настройках сервера разрешил грузить 8 мегабайт, в настройках форума тоже.
Чтобы PHP хватало памяти - в functions_posting.php прописал ini_set

case IMG_PNG:
ini_set('memory_limit', '256M');
$image = @imagecreatefrompng($source);
break;

А тем не менее плотно пожатые картинки часто не проходят.
Понятно, что картинка на 20 мегабайт ужата до 100-400 килобайт. И похоже на то, что форум смотрит не размер маленькой картинки с хорошей компрессией, а смотрит на картинку так, словно это полотно без компрессии.

Подскажите пожалуйста, может есть идеи, где порыться в functions_posting.php чтобы пропускало реально большие картинки но с очень плотной компрессией.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17148
Стаж: 19 лет 9 месяцев
Откуда: Красноярск
Благодарил (а): 579 раз
Поблагодарили: 1763 раза

Re: Увеличить размер вложений PNG

Сообщение rxu »

rudtp_pp писал(а): 19.02.2026 12:07 плотно пожатые картинки часто не проходят.
Какая ошибка выдается?
Изображение
rudtp_pp
phpBB 1.4.1
Сообщения: 46
Стаж: 9 лет 1 месяц
Благодарил (а): 18 раз
Поблагодарили: 2 раза

Re: Увеличить размер вложений PNG

Сообщение rudtp_pp »

Ошибка
Файл слишком большой: filename.png


А файл всего условно 200 килобайт. Но если несжатый - мегабайт на 20 будет, да. Условно 10 000 на 10 000 пикселей.

Еще ранее выдавал ошибку PHP fatal error нехватка памяти при операции @imagecreatefrompng даже с их символом @ в коде.
Но это пофиксил и добавлением памяти в настройках php и в самом скрипте по необходимости.

Что-то я пока не понимаю, может function get_img_size_format возвращает где-то не размер файла, а объем памяти, занятый файлом из getimagesize()? Ищу пока в functions_posting.php и в functions.php
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17148
Стаж: 19 лет 9 месяцев
Откуда: Красноярск
Благодарил (а): 579 раз
Поблагодарили: 1763 раза

Re: Увеличить размер вложений PNG

Сообщение rxu »

rudtp_pp писал(а): 19.02.2026 14:06 может function get_img_size_format возвращает где-то не размер файла
Она вообще не размер файла должна возвращать, а размер изображения (ширина-высота).
Может быть, в настройках вложений ограничение указано?
image.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение
rudtp_pp
phpBB 1.4.1
Сообщения: 46
Стаж: 9 лет 1 месяц
Благодарил (а): 18 раз
Поблагодарили: 2 раза

Re: Увеличить размер вложений PNG

Сообщение rudtp_pp »

Максимальный размер файла: - указано 8 мегабайт.
Максимальный размер каждого загружаемого файла. Если значение равно 0, размер файла ограничен только конфигурацией PHP.

В настройках сервера также 8 мегабайт. То есть можно поставить и 0 в форуме, тоже пробовал.

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

Я конечно подменяю нужные мне изображения в папке Files на требуемые, средствами форума только кладу уменьшенную превьюшку, но это лишние телодвижения.
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17148
Стаж: 19 лет 9 месяцев
Откуда: Красноярск
Благодарил (а): 579 раз
Поблагодарили: 1763 раза

Re: Увеличить размер вложений PNG

Сообщение rxu »

rudtp_pp писал(а): 19.02.2026 18:45 Максимальный размер файла: - указано 8 мегабайт.
Тогда проверьте: Админраздел - Сообщения - Группы расширений файлов - шестеренка напротив категории "Изображения" - Максимальный размер файла.
Снимок экрана 2026-02-19 225700.png
Снимок экрана 2026-02-19 225647.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение
rudtp_pp
phpBB 1.4.1
Сообщения: 46
Стаж: 9 лет 1 месяц
Благодарил (а): 18 раз
Поблагодарили: 2 раза

Re: Увеличить размер вложений PNG

Сообщение rudtp_pp »

Максимальные размеры рисунков: 9999
Максимальные размеры загружаемых рисунков. Введите 0×0 для отключения проверки размеров.


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

Выгрузил файл в оригинале 10 мегабайт, сжатый пинго до 300 килобайт. Проскочил наконец нормально.

Буду тестировать дальше. Неочевидно, конечно "Введите 0×0 для отключения проверки размеров" тогда как лучше получается просто установить большой размер и по нему прочекать внутри скрипта. Но главное что работает. Спасибо за помощь!

Отправлено спустя 7 минут 41 секунду:
rxu писал(а): 19.02.2026 18:54
rudtp_pp писал(а): 19.02.2026 18:45 Максимальный размер файла: - указано 8 мегабайт.
Тогда проверьте: Админраздел - Сообщения - Группы расширений файлов
Спасибо, тоже сделал. Было 512 кб, так что да - возможно и тут собака порылась.
Хорошо что вы подсказали!!! Забыл про эту группу, хотя давно даже в нее что-то добавлял.
Спасибо!
rudtp_pp
phpBB 1.4.1
Сообщения: 46
Стаж: 9 лет 1 месяц
Благодарил (а): 18 раз
Поблагодарили: 2 раза

Re: Увеличить размер вложений PNG

Сообщение rudtp_pp »

Интересный момент тоже.

Максимальные размеры рисунков:
Максимальные размеры загружаемых рисунков. Введите 0×0 для отключения проверки размеров


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

Для проверки - кладу такую и такую картинки, индексную со сжатием вне форума и пережатую самим форумом.

Как и у меня - картинка на 6 кб форуму не нравится.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
rudtp_pp
phpBB 1.4.1
Сообщения: 46
Стаж: 9 лет 1 месяц
Благодарил (а): 18 раз
Поблагодарили: 2 раза

Re: Увеличить размер вложений PNG

Сообщение rudtp_pp »

Нашел решение, чтобы форум был доволен.
Не 6 кб, не 70 кб, но 14 кб как компромисс.
Нужно использовать для сжатия не pingo, а oxipng с параметром --nc - не менять цветовую модель.

Скорее всего форум на операции imagecreatefrompng задает по дефолту ргб, когда в такой имадж попадает цвет индекс для генерации превьюшки - это просто ошибка для gd.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
rudtp_pp
phpBB 1.4.1
Сообщения: 46
Стаж: 9 лет 1 месяц
Благодарил (а): 18 раз
Поблагодарили: 2 раза

Re: Увеличить размер вложений PNG

Сообщение rudtp_pp »

Еще ответ на вопрос

Минимальный размер файлов для миниатюр: 8000 байт
Миниатюры не будут создаваться для рисунков меньше указанного размера.


Для плотно пожатой картинки в 6789 байт миниатюра не создавалась. А надо было, картинка с разрешалкой 2K между тем, просто плотнее упакована, чем публикует обычный пользователь с обычными настройками форума. Разобрались.

Сделал:
Минимальный размер файлов для миниатюр: 50 байт

Все хорошо.

Тут случай, когда превью больше оригинала!-)) Так что можно прикрутить и сжатие превью, типа:

Код: Выделить всё

imagepng($thumb_img, $destination, 9);
exec("oxipng -o 2 --strip all " . escapeshellarg($destination) . " > /dev/null 2>&1 &");

Вернуться в «phpBB-пространство»