Я использую пакет Symfony 4.2 и Liip Imagine. У меня есть такой фильтр:
live_feed_message:
jpeg_quality: 40
png_compression_level: 9
filters:
relative_resize:
widen: 1024
Но в случае, если отправленное изображение меньше 1024 пикселей, оно изменяется до 1024 пикселей.
Мне нужен фильтр, который изменяет размер изображения Только, если изображение больше.
Я искал, и я не нашел решения для этого. У кого-нибудь была эта проблема?
Спасибо за вашу помощь
Я бы смог сделать это с помощью пользовательского кода. Но я спрашиваю с Liip Imagine, который представляет собой пакет для применения фильтра к изображениям. Поэтому вместо того, чтобы делать собственный код, я хотел бы знать, знает ли кто-нибудь, как это сделать с помощью Liip Imagine.
Единственное решение, которое я нашел на данный момент, — это использовать фильтр миниатюр с allow_upscaleat false. Но я уже читал, что миниатюры могут вызвать проблемы с производительностью... Поэтому я избегаю их использования.
Я не в курсе Liip. Я дал решение в соответствии с основами PHP






Хорошо, я нашел решение. Я уже пробовал, но не правильно, я думаю.
Теперь это работает. Вместо использования фильтра relative_resize используйте фильтр downscale.
Документация :
The built-in downscale filter performs sizing transformations (specifically image down-scaling). This filter exposed a number of down scale options which may be used to configure its behavior.
https://symfony.com/doc/2.0/bundles/LiipImagineBundle/filters/sizing.html#relative-resize-options
получить размер файла и сравнить его с вашим идеальным размером. если больше, измените размер, иначе оставьте