PHP干预图像调整图像大小以适应最短边与纵横比

Pet*_*tah 3 php image-processing image-resizing

如何使用干预图像调整图像大小以保持纵横比,但使图像的最短边适合所需的调整大小比例.

例如,调整大小以适应100x100的800x400图像将调整为200x100

我试过这个:

$image->resize($width, $height, function ($constraint) {
    $constraint->aspectRatio();
});
Run Code Online (Sandbox Code Playgroud)

但它调整了最长的一面以适应(例如100x50).

Ped*_*ito 7

设置宽度null:

$height = 100;
$image = Image::make('800x400.jpg')->resize(null, $height, function ($constraint) {
    $constraint->aspectRatio();
});
$image->save('200X100.jpg', 60);
Run Code Online (Sandbox Code Playgroud)

以编程方式说,只需找到哪一侧较大并将其设置为null,即:

$width = 100;
$height = 100;
$image = Image::make('400x800.png');
$image->width() > $image->height() ? $width=null : $height=null;
$image->resize($width, $height, function ($constraint) {
    $constraint->aspectRatio();
});
$image->save('100x200.jpg', 60);
Run Code Online (Sandbox Code Playgroud)