У меня есть код:
use yii\imagine\Image;
use Imagine\Image\Box;
...
$path = Yii::getAlias('@app'). '/temp';
Image::frame($path . '/1.jpg')->thumbnail(new Box(200, 200))->save($path . '/2.jpg', ['quality' => 100]);
Исходное изображение: 1.jpg
и результат: 2.jpg
Результат имеет белую рамку. Как отключить границу?
Если нет способа отключить границы, как изменить без обрезания и сохранения соотношения сторон?
Спасибо вам!
Я только что имел эту проблему и исправил ее, посмотрев документы:
http://www.yiiframework.com/doc-2.0/yii-imagine-baseimage.html#frame()-detail
public static \Imagine\Image\ImageInterface frame ( $filename, $margin = 20, $color = '666', $alpha = 100 )
По сути, метод frame создан для того, чтобы делать то, что вы не хотите. Чтобы исправить это, используйте параметр margin как таковой:
Image::frame($path . '/1.jpg', 0)->thumbnail(new Box(200, 200))->save($path . '/2.jpg', ['quality' => 100]);
Других решений пока нет …