Yii2 представьте себе PHP
Привет, ребята) Нужна ваша помощь. Я использую 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 ответа
Вы должны использовать 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);