问题描述
在我的 yii2 项目中,我有图像压缩代码。我想将任何大小的图像压缩到 200kb。我正在使用 Yii2 想象扩展来压缩图像。我的代码是
Image::thumbnail($uploadpath . '/' . $file->name,$newwidth,$newheight)
->save($uploadpath . '/' . $file->name,['quality' => 100]);
$newwidth
和 $newheight
是我们上传图片的原始宽度和高度。
压缩工作正常。但它压缩了最大值。假设我上传了一张 1MB 的图片,那么输出的图片大小将是 30kb,我的意思是太小了。所以我需要的是,我必须压缩到 200Kb。所以如果有任何大小,输出应该是 200kb。
有没有办法做到这一点?如果我们对核心 PHP 有任何选择,也请告诉我。
解决方法
试试这个扩展:https://github.com/yiisoft/yii2-imagine
我正在使用下一个代码:
Image::getImagine()->open($originFile)
->thumbnail(new Box(800,800))
->save($filesPath .'/'. $newImageName . '.' . $originFile->file->extension,['quality' => 100]);
接下来你必须在控制器中包含:
use yii\imagine\Image;
use Imagine\Gd;
use Imagine\Image\Box;
use Imagine\Image\BoxInterface;