图片服务 - thumbor用法

图片服务 - thumbor用法

 

使用拇指是非常简单的。thumbor提供一个用于检索图像的端点和一个非常相似的端点来检索元数据。

 

图像端点

http://*thumbor-server*/hmac/trim/AxB:CxD/(adaptative-)(full-)fit-in/-Ex-F/HALIGN/VALIGN/smart/filters:FILTERNAME(ARGUMENT):FILTERNAME(ARGUMENT)/*image-uri*

  • thumbor-server是当前运行的服务的地址;
  • hmac是确保安全的签名;
  • 除非另有说明,否则修剪将使用左上角像素颜色移除图像中的周围空间;
  • AxB:CxD表示在左上角点AxB和右下角点CxD手动裁剪图像;
  • 拟合意味着不应自动裁剪生成的图像,否则只适合ExF指定的假想框。如果指定了完全装配,则最大尺寸用于裁剪(宽度而不是高度,或相反)。如果指定了自适应拟合,它将反转所请求的宽度和高度,如果它将获得更好的图像定义;
  • -Ex-F表示将图像的大小调整为每个高度尺寸的宽度的ExF。减号表示水平和垂直翻转;
  • HALIGN是作物的水平对齐;
  • VALIGN是作物的垂直对齐;
  • 聪明意味着使用智能检测焦点;
  • 过滤器可以在返回之前顺序应用于图像;
  • image-uri是要调整大小的图像的公共URI。

 

修剪

可以使用修剪选项删除图像中的周围空间。

除非指定的修剪采用左上角像素颜色且没有公差(下面的公差更多)。

要使用它,只需/trim在URL中添加一部分即可。

如果需要指定从哪里获取像素颜色的方向,只需使用/trim:top-left左上角像素颜色或/trim:bottom-right右下角像素颜色。

Trim还支持色彩容差。使用参考像素的颜色与周围像素之间的欧几里德距离。如果距离在公差范围内,它们将被修剪。对于RGB图像,公差将在0-442的范围内。

 

手动裁剪

手动裁剪完全是可选的。这对于为其用户提供自定义实时裁剪功能的应用程序非常有用。

url的手动裁剪部分将两个点作为参数,用冒号分隔。第一个点是裁剪矩形的左上角。第二点是右下角。

此裁剪在其余操作之前执行,因此可以在调整大小和智能裁剪之前将其用作准备步骤。作为一个例子,当你需要在一张满是人的大照片上获得名人脸时,它 非常有用。

 

适合

拟合参数指定不应自动裁剪图像并将其自动调整为完全指定的大小,而应放在“E”宽度和“F”高度的假想框中。

考虑800px x 600px的图像,以及300px x 200px的图像。这是拇指大小调整大小的方法:

垂直装配中的图像

考虑400px x 600px的图像,以及300px x 200px的图像。这是拇指大小调整大小的方法:

水平装配中的图像

当您需要在某处放置图像时,这非常有用,但您不了解原始图像尺寸。

如果使用完全拟合,而不是使用最大尺寸进行裁剪,则使用最小尺寸,因此在上述场景中:

对于800px x 600px的图像,完全适合300px x 200px,我们将获得300px x 225px的图像。

对于400px x 600px的图像,完全适合300px x 200px,我们将获得300px x 450px的图像。

 

图像尺寸

image size参数指定将由服务返回的图像的大小。Thumbor使用智能裁剪和调整大小算法

如果省略其中一个尺寸或使用零作为值(如300x,300x0,x200,0x200等),Thumbor将确定该尺寸与原始图像成比例。假设您有800x600图像并要求400x0图像。拇指将推断,因为400是800的一半,那么你要寻找的高度是600的一半,即300px。

如果使用0x0,Thumbor将使用图像的原始大小,因此不会进行任何裁剪或调整大小。

如果将其中一个尺寸指定为字符串“orig”(如origx100,100xorig,origxorig),则拇指将解释您希望该尺寸与原始图像中的尺寸保持一致。考虑800x600的图像。如果您要求300xorig版本,拇指将解释您想要300x600图像。如果您要求使用origx300版本,拇指将为您提供800x300图像。

如果您使用origxorig,Thumbor将使用图像的原始大小,因此不会进行任何裁剪或调整大小。

此选项的默认值(如果省略)是对原始图像使用比例大小(0)。

 

水平对齐

如上所述,除非图像具有与所需尺寸相同的比例,否则将需要进行一些裁剪。

如果需要修剪某些宽度,水平对齐选项将控制裁剪的位置(除非发生某些特征检测 - 稍后会详细介绍)。

因此,如果我们需要修剪300px的宽度并且当前水平对齐是“左”,那么我们将修剪图像左边的0px和图像右边的300px。

此选项的可能值为:

  • 左 - 仅修剪右侧;
  • 中心 - 从左侧修剪一半宽度,从右侧修剪一半宽度;
  • 右 - 仅修剪左侧。

重要的是要注意,在垂直修剪图像的情况下,此选项无效,因为Thumbor的裁剪算法仅在一个方向上裁剪。

此选项的默认值(如果省略)是“center”。

 

垂直对齐

垂直对齐选项类似于水平对齐,但它控制高度修剪。

因此,如果我们需要修剪300px的高度并且当前垂直对齐是“顶部”,那么我们将修剪图像顶部的0px和图像底部的300px。

此选项的可能值为:

  • 顶部 - 仅修剪底部;
  • 中间 - 从顶部到底部的高度的一半,从底部的一半;
  • 底部 - 仅修剪顶部。

重要的是要注意,在图像被水平修剪的情况下,此选项是无用的,因为Thumbor的裁剪算法仅在一个方向上裁剪。

此选项的默认值(如果省略)为“middle”。

 

智能裁剪

Thumbor使用一些非常先进的技术来获取图像的重要点(本文档的其余部分称为焦点)。

即使Thumbor具有焦点的面部识别以及特征识别,您也可以轻松实现自己的探测器,您将在文档中进一步了解。

这个选项并不多,因为我们将在“ 检测算法” 页面中介绍它。如果您在网址中使用它,则会执行智能裁剪,如果找到任何焦点,则会覆盖水平和垂直对齐。

此选项的默认值(如果省略)不使用智能裁剪。

 

过滤器

Thumbor允许使用将按顺序应用于图像的过滤器管道。如果您想了解更多信息,请在“ 过滤器”页面中介绍 过滤器

要使用过滤器,请在网址中添加“过滤器:”部分。过滤器类似于函数调用“filter_name(argument,argument2,etc)”,并使用“:”字符分隔。

 

图像

这是图像URI。此选项的格式在很大程度上取决于您使用的图像加载程序。Thumbor预先打包了HTTP加载器和Filesystem加载器。

如果使用HTTP加载程序,则此选项对应于图像完整URI。

如果使用Filesystem加载程序,则此选项对应于images根目录中图像的路径。

您可以在Image loader页面中了解有关加载器的更多信息。

 

元数据端点

元数据端点具有图像所具有的所有选项,但它不是实际执行图像中的操作,而是模拟操作。

由于它与其他端点具有相同的选项,因此我们不会重复所有这些选项。要使用元数据端点,只需在url的开头添加/ meta

假设我们有以下裁剪网址:

http://my-server.thumbor.org/unsafe/-300x-200/left/top/smart/path/to/my/nice/image.jpg

如果我们想要关于thumbor会做什么的元数据,只需更改网址即可

http://my-server.thumbor.org/unsafe/meta/-300x-200/left/top/smart/path/to/my/nice/image.jpg

处理完成后,thumbor将返回一个json对象,其中包含图像上的元数据以及本应执行的操作。

json看起来像这样:

{
    thumbor: {
        source: {
            url: "path/to/my/nice/image.jpg",
            width: 800,
            height: 600
        },
        operations: [
            {
                type: "crop",
                left: 10,
                top: 10,
                right: 300,
                bottom: 200
            },
            {
                type: "resize",
                width: 300,
                height: 200
            },
            { type: "flip_horizontally" },
            { type: "flip_vertically" }
        ]
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值