如果原始图像小于指定宽度,则添加水平填充

Add horizontal padding if the original image is less than the width specified

我认为这不可能开箱即用,但我想确认一下。 我们想做以下事情。

接受任何图像输入并强制输出宽度为固定大小。如果宽度小于输出宽度,我们希望将图像居中并向图像添加水平填充但不添加垂直填充。

例如

  1. 原图为 700px x 400px
  2. 最终输出尺寸为 1000 像素宽 x 400 像素。这将包括 150 像素的左侧填充和 150 像素的右侧填充(没有顶部/底部填充)。

我知道我们可以放大图像 (scale=both) 或设置 canvas 比例(但会添加顶部/底部填充)或者我们可以向图像添加填充,但 none正是我们想要的。

感谢您的帮助


对拿但业的回应

您的评论完全正确。

  1. 我希望 http://z.zr.io/ri/red-leaf.jpg?width=1000&scale=canvas&bgcolor=gray 完全按照它的方式工作

  2. 是的,我们的问题是事先不知道图像高度,但很高兴知道这适用于已知高度

  3. 我认为如果有一个适用于可变高度的 scale=padwidth 命令就好了。或者可以与 scale=canvas.

  4. 结合使用的 padwidth=true 和 padheight=false 的设置

那么,假设您获得了 800x600px image,并且您申请了 ?width=1000&scale=canvas。您期望这会产生 1000x600 像素的图像,但它却产生了 1000x750 像素的图像,对吗?

http://z.zr.io/ri/red-leaf.jpg?width=1000&scale=canvas&bgcolor=gray

如果您明确指定高度,填充就会消失 - 但您可能事先不知道图像高度,对吗?

http://z.zr.io/ri/red-leaf.jpg?width=1000&scale=canvas&bgcolor=gray&height=600

什么是最不令人惊讶的行为 - 保持宽高比,或只添加所需的最小填充?您希望它的行为如何,或者作为命令公开?