1

私はコードを持っています:

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

結果には白い枠があります。境界線を無効にするとどうなりますか?

境界線を無効にする方法がない場合、割礼なしでアスペクト比を維持して変更するにはどうすればよいですか?

ありがとうございます!

4

1 に答える 1

0

私はちょうどこの問題を抱えていて、ドキュメントを見て修正しました:

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]);
于 2016-03-24T21:51:01.950 に答える