我使用下面的功能,调整大小的图片上传后,显示在我的帖子。但它只适用于大于500 px300 it的图像。当我上传小于这个大小的图片时,我的网站图片就会崩溃。
use yii\imagine\Image;
public function upload() {
$this->pictureFile->saveAs('../files/upload/' . $this->pictureFile->baseName . '.' . $this->pictureFile->extension);
Image::thumbnail('../files/upload/' . $this->pictureFile, 500, 300)
->save('../files/upload/thumbnail-500x300/' . $this->pictureFile->baseName . '.' . $this->pictureFile->extension,
['quality' => 70]);
unlink('../files/upload/' . $this->pictureFile->baseName . '.' . $this->pictureFile->extension);
}发布于 2016-03-15 11:55:37
使用调整大小的方法如下
use yii\imagine\Image;
use Imagine\Image\Box;
public function upload() {
$this->pictureFile->saveAs('../files/upload/' . $this->pictureFile->baseName . '.' . $this->pictureFile->extension);
Image::thumbnail('../files/upload/' . $this->pictureFile, 500, 300)
->resize(new Box(500,300))
->save('../files/upload/thumbnail-500x300/' . $this->pictureFile->baseName . '.' . $this->pictureFile->extension,
['quality' => 70]);
unlink('../files/upload/' . $this->pictureFile->baseName . '.' . $this->pictureFile->extension);
}发布于 2016-03-15 11:42:19
不要使用Image::thumbnail,而应尝试以下方法
$imagine = Image::getImagine();
$image = $imagine->open('../files/upload/' . $this->pictureFile);
$image->resize(new Box(500, 300))->save('../files/upload/thumbnail-500x300/' . $this->pictureFile->baseName . '.' . $this->pictureFile->extension, ['quality' => 70]);还没有对其进行测试,但是由于yii的Image只是Imagine库的一个包装器,所以它应该可以进行一些小的更改(如果需要的话)。
是的,在使用上面的代码之前,您需要在文件中进行use Imagine\Image\Box;。
发布于 2017-08-01 11:53:06
Yii::setAlias('newsfolder', dirname(dirname(__DIR__)) . '/frontend/web/extraimages/');
$model->img = UploadedFile::getInstance($model,'img');
if (!empty($model->img)){
$model->img->saveAs( Yii::getAlias('@newsfolder/').$filename.'.'.$model->img->extension );
$model->img = $filename.'.'.$model->img->extension;
$imagine = Image::getImagine();
$image = $imagine->open(Yii::getAlias('@newsfolder/'.$model->img));
$image->resize(new Box(500, 300))->save(Yii::getAlias('@newsfolder/'.$model->img, ['quality' => 70]));
}https://stackoverflow.com/questions/36007799
复制相似问题