PHP 干预图像调整图像大小以适应最短边与纵横比
PHP Intervention Image Resize image to fit shortest side to aspect ratio
如何使用 Intervention Image 调整图像大小,保持纵横比但使图像的最短边适合所需的调整大小比例。
例如调整大小以适合 100x100 的 800x400 图片将调整为 200x100
我试过这个:
$image->resize($width, $height, function ($constraint) {
$constraint->aspectRatio();
});
但它会调整最长边的大小以适合(例如 100x50)。
设置宽度为null
:
$height = 100;
$image = Image::make('800x400.jpg')->resize(null, $height, function ($constraint) {
$constraint->aspectRatio();
});
$image->save('200X100.jpg', 60);
从程序上讲,只需找出哪边较大并将其设置为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);
如何使用 Intervention Image 调整图像大小,保持纵横比但使图像的最短边适合所需的调整大小比例。
例如调整大小以适合 100x100 的 800x400 图片将调整为 200x100
我试过这个:
$image->resize($width, $height, function ($constraint) {
$constraint->aspectRatio();
});
但它会调整最长边的大小以适合(例如 100x50)。
设置宽度为null
:
$height = 100;
$image = Image::make('800x400.jpg')->resize(null, $height, function ($constraint) {
$constraint->aspectRatio();
});
$image->save('200X100.jpg', 60);
从程序上讲,只需找出哪边较大并将其设置为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);