Yii2 представить себе PHP

Всем привет) Нужна ваша помощь. Я использую ext yii2-imagine. Пытаюсь сохранить файл в качестве => 50, но не получается. Изображение всегда сохраняется в качестве => 100. Почему это может произойти?

   $imagine = new Image();
    $photo = $imagine::getImagine()->open($this->uploadedFile->tempName);

    $width = $photo->getSize()->getWidth();
    $height = $photo->getSize()->getHeight();

    if (($width >= $this->width) || ($height >= $this->height)) {
        $photo->thumbnail(new Box($this->width, $this->height))->save($this->uploadedFile->tempName, ['quality' => 50]);
    }

Попробуйте изменить размер (новый ящик (500 300)). Это может уменьшить размер и качество

Mebin Joe 28.02.2019 08:28

мне размер не помогает)

Дмитрий Лебедев 28.02.2019 08:32

попробуйте так: Image::frame($path) ->thumbnail(new Box(100, 100)) ->save($thumbnail, ['quality' => 50]);

Mebin Joe 28.02.2019 08:38
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
201
2

Ответы 2

Вы должны использовать опцию jpeg_quality:

$photo->thumbnail(new Box($this->width, $this->height))
     ->save($this->uploadedFile->tempName, ['jpeg_quality' => 50]);

См. примеры в документация.

В соответствии с документация по воображению вы можете установить параметр «jpeg_quality» для jpeg и «png_compression_level» для png. В вашем случае вы можете попробовать что-то вроде этого:

    $options = [];
    switch (exif_imagetype($this->uploadedFile->tempName)) {
        case IMAGETYPE_PNG:
            $options = ['png_compression_level' => 9];
            break;
        case IMAGETYPE_JPEG:
            $options = ['jpeg_quality' => 50];
            break;
        default:
            throw new \Exception('Unsupported format');
    }
    $photo->thumbnail(new Box($this->width, $this->height))->save($this->uploadedFile->tempName, $options);

Другие вопросы по теме