Yii2 представьте себе PHP - PullRequest
0 голосов
/ 28 февраля 2019

Привет, ребята) Нужна ваша помощь.Я использую ext yii2-представь.Я пытаюсь сохранить файл с качеством => 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]);
    }

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

В соответствии с документацией воображения , вы можете установить параметр '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);
0 голосов
/ 28 февраля 2019

Вы должны использовать jpeg_quality параметр:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...