PHP(或ImageMagick)中是否有调整图像大小以达到最佳覆盖的功能?

Is there a function in PHP (or ImageMagick) resize image to best cover?

我认为这是一个简单的问题,但令我惊讶的是 Google 上没有解决方案。对不起,如果我错过了一些结果。有没有办法在不自己计算宽度高度和位置的情况下调整图像的大小以最佳覆盖区域而不是最佳适合?

对于最佳封面,我指的是 CSS 中的 background-size: cover;

没有为此目的内置任何内容。但是,您也许可以找到可以执行此操作的软件包。

将 ImageMagick 用于匹配 CSS background-size: cover 的内容,您可以执行以下操作(假设您的目标格式是正方形,宽度和高度为 300 像素):

 convert sourcimage.jpg -resize 300x300^ -gravity center -extent 300x300 targetimage.jpg
  1. resize 通过 ^ 较小的图像边,让较大的边大于 300 像素
  2. gravity设置为center
  3. 最后 extent 将调整后的图像裁剪到您想要的大小(剪掉第 1 步多余的部分)