kraken php

2025-12-07 0 276

Kraken.io图像优化器API的PHP库

这是官方的Kraken.IO PHP库,该库应非常快速地将我们的图像优化整合到其PHP项目中。 kraken.io图像优化器。

  • 安装
  • 入门
  • 下载图像
  • 如何使用
  • 等待和回调URL
    • 等待选项
    • 回调URL
  • 验证
  • 用法 – 图像URL
  • 用法 – 图像上传
  • 有损优化
  • 图像调整大小
  • WebP压缩
  • 图像类型转换
  • 保存元数据
  • 外部存储
    • 亚马逊S3
    • Rackspace云文件
    • Microsoft Azure
    • SoftLayer对象存储

安装

作曲家

如果您使用的是作曲家,则可以在项目的composer.json文件中添加对kraken-io/kraken-php依赖性。这是对版本1.2的依赖性的示例:

{
    \"require\" : {
        \"kraken-io/kraken-php\" : \" ^1.2 \"
    }
}

另外,您还可以在项目的根目录中执行以下命令:

 composer require kraken-io/kraken-php

git

如果您已经有了git,那么下载kraken-php库的最简单方法与git命令:

 git clone git://github.com/kraken-io/kraken-php.git /path/to/include/kraken

手工

另外,您可以从GitHub下载PHP文件,并将其放置在PHP项目中:

 https://gith*ub**.com/kraken-io/kraken-php/archive/master.zip

入门

首先,您需要注册kraken.io API并获取独特的API键API秘密。您将在API凭据下找到两者。设置帐户后,您可以在应用程序中开始使用kraken.io api。

下载图像

请记住 – 切勿链接到提供下载的优化图像。您必须先下载它们,然后在网站或应用程序中替换它们。由于安全原因,优化图像仅在我们的服务器上可用一小时可用。

如何使用

您可以通过两种方式优化图像 – 通过提供要优化的图像的URL或将图像文件直接上传到Kraken.io API。

第一个选项(图像URL)非常适合已经在生产或Internet上任何其他位置的图像。第二个(直接上传)非常适合您的部署过程,构建脚本或用户上载未在线可用图像的即时处理。

等待和回调URL

Kraken.io为您提供了两个选择优化结果的选项。在wait选项设置的情况下,结果将在响应中立即返回。使用callback_url选项设置,结果将发布到您请求中指定的URL。

等待选项

在对API的每个请求打开wait选项后,连接将保持打开状态,直到图像被优化为止。完成此操作后,您将使用包含优化结果的JSON对象立即响应。要使用此选项,只需在您的请求中设置\"wait\": true

要求:

 {
    \"auth\" : {
        \"api_key\" : \"your-api-key\" ,
        \"api_secret\" : \"your-api-secret\"
    } ,
    \"url\" : \"http://ima*ge*-*url.com/file.jpg\" ,
    \"wait\" : true
}

回复

 {
    \"success\" : true ,
    \"file_name\" : \"file.jpg\" ,
    \"original_size\" : 324520 ,
    \"kraked_size\" : 165358 ,
    \"saved_bytes\" : 159162 ,
    \"kraked_url\" : \"http://dl.*kra*k*en.io/d1aacd2a2280c2ffc7b4906a09f78f46/file.jpg\"
}

回调URL

使用回调URL,HTTPS连接将立即终止,并将在响应主体中返回唯一的id 。优化之后,kraken.io将向您的请求中指定的callback_url发布消息。响应中的ID将反映您回调URL的结果中的ID。

我们建议请求Bin作为捕获初始测试优化结果的简便方法。

要求:

 {
    \"auth\" : {
        \"api_key\" : \"your-api-key\" ,
        \"api_secret\" : \"your-api-secret\"
    } ,
    \"url\" : \"http://ima*ge*-*url.com/file.jpg\" ,
    \"callback_url\" : \"http://awe*some-**website.com/kraken_results\"
}

回复:

 {
    \"id\" : \"18fede37617a787649c3f60b9f1f280d\"
}

结果发布到回调URL:

 {
    \"id\" : \"18fede37617a787649c3f60b9f1f280d\"
    \"success\" : true ,
    \"file_name\" : \"file.jpg\" ,
    \"original_size\" : 324520 ,
    \"kraked_size\" : 165358 ,
    \"saved_bytes\" : 159162 ,
    \"kraked_url\" : \"http://dl.*krak**en.io/18fede37617a787649c3f60b9f1f280d/file.jpg\"
} 

验证

第一步是在创建新的kraken.io实例时提供唯一的API密钥和API秘密来验证Kraken.io API:

 <?php

require_once ( \" Kraken.php \" );

$ kraken = new Kraken ( \" your-api-key \" , \" your-api-secret \" );

用法 – 图像URL

通过提供图像URL使用kraken.url()方法来优化图像。您将需要在图像中提供两个强制性参数url ,并waitcallback_url

 <?php

require_once ( \" Kraken.php \" );

$ kraken = new Kraken ( \" your-api-key \" , \" your-api-secret \" );

$ params = array (
    \" url \" => \" http://ur*l*-to-*image.com/file.jpg \" ,
    \" wait \" => true
);

$ data = $ kraken -> url ( $ params );

根据data阵列中选择的响应选项(等待或回调URL),您将找到包含success属性,文件名,原始文件大小,杂项文件大小,节省量和优化图像URL的优化ID或优化结果:

 array ( 6 ) {
    \' success \' =>
    bool(true)
    \' file_name \' =>
    string( 8 ) \" file.jpg \"
    \' original_size \' =>
    int( 62422 )
    \' kraked_size \' =>
    int( 52783 )
    \' saved_bytes \' =>
    int( 9639 )
    \' kraked_url \' =>
    string( 65 ) \" http://dl.*kra*k*en.io/d1aacd2a2280c2ffc7b4906a09f78f46/file.jpg \"
}

用法 – 图像上传

如果要将图像直接上传到kraken.io api,请使用kraken->upload()方法。您将需要在数组 – file中提供两个强制性参数,这是文件的绝对路径,然后waitcallback_url

$data数组中,您将找到与上面的url选项相同的优化属性。

 <?php

require_once ( \" Kraken.php \" );

$ kraken = new Kraken ( \" your-api-key \" , \" your-api-secret \" );

$ params = array (
    \" file \" => \" /path/to/image/file.jpg \" ,
    \" wait \" => true
);

$ data = $ kraken -> upload ( $ params );

有损优化

当您决定仅牺牲少量的图像质量(通常对人眼不知所措)时,您将能够节省多达90%的初始文件重量。损失优化将为您提供出色的结果,而图像质量损失的一小部分。

要使用有损优化,只需在您的请求中设置\"lossy\" => true

 <?php

require_once ( \" Kraken.php \" );

$ kraken = new Kraken ( \" your-api-key \" , \" your-api-secret \" );

$ params = array (
    \" file \" => \" /path/to/image/file.jpg \" ,
    \" wait \" => true ,
    \" lossy \" => true
);

$ data = $ kraken -> upload ( $ params );

PNG图像

PNG图像将通过完整的alpha通道从24位转换为24位的8位。此过程称为RGBA格式的PNG量化,意味着图像中使用的颜色量将减少到256,同时维持有关Alpha透明度的所有信息。

JPEG图像

对于有损的JPEG优化,Kraken.io将生成具有不同质量设置的输入图像的多个副本。然后,它将明智地选择具有最佳质量的档案化评分的产品。这样可以确保您的JPEG图像的尺寸最小,而无需人工选择最佳图像。

图像调整大小

图像调整选项非常适合在应用程序中创建缩略图或预览图像。 Kraken.io首先要调整给定图像大小,然后使用其大量优化算法对其进行优化。 resize选项需要一些参数,例如所需的width和/或height以及强制性strategy属性。例如:

 <?php

require_once ( \" Kraken.php \" );

$ kraken = new Kraken ( \" your-api-key \" , \" your-api-secret \" );

$ params = array (
    \" file \" => \" /path/to/image/file.jpg \" ,
    \" wait \" => true ,
    \" resize \" => array (
        \" width \" => 100 ,
        \" height \" => 75 ,
        \" strategy \" => \" crop \"
    )
);

$ data = $ kraken -> upload ( $ params );

strategy属性可以具有以下值之一:

  • exact – 通过精确的宽度/高度调整大小。不会保持纵横比。
  • portrait – 将设置精确的宽度,将根据纵横比调整高度。
  • landscape – 将设置精确的高度,宽度将根据纵横比进行调整。
  • auto – 将根据纵横比为给定的图像选择最佳策略(肖像或景观)。
  • fit此选项将裁剪和调整图像大小以适合所需的宽度和高度。
  • square此策略将首先通过较短的尺寸裁剪图像,以使其成为正方形,然后将其调整到指定的大小。
  • crop – 此选项将您的图像裁剪成您指定的确切大小而不会失真。
  • fill – 此策略使您可以调整图像大小以在保留纵横比的同时(就像自动策略一样)。可选的背景属性允许您指定一种颜色,该颜色将用于填充先前指定的边界的未使用部分。背景属性可以在十六进制符号#f60#ff6600 ,RGB rgb(255, 0, 0)或RGBA rgba(91, 126, 156, 0.7)中格式化。默认的背景颜色为白色。

有关图像调整和裁剪的更多信息,请参见Kraken.io API参考

WebP压缩

WebP是Google在2010年引入的一种新图像格式,可支持有损和无损压缩。根据Google的说法,与PNG相比,WebP无损图像的尺寸小26% ,与JPEG图像相比,WebP损耗的图像的尺寸小25-34%

要将您的png或JPEG文件重新压缩到WebP格式中,只需设置\"webp\": true标志。您还可以选择设置\"lossy\": true标志来利用WebP的有损压缩:

 <?php

require_once ( \" Kraken.php \" );

$ kraken = new Kraken ( \" your-api-key \" , \" your-api-secret \" );

$ params = array (
    \" file \" => \" /path/to/image/file.jpg \" ,
    \" wait \" => true ,
    \" webp \" => true ,
    \" lossy \" => true
);

$ data = $ kraken -> upload ( $ params );

图像类型转换

Kraken.io API允许您轻松地将不同的图像从一种类型/格式转换为另一种类型/格式。例如,如果您想将透明的PNG文件转换为带有灰色背景的JPEG,请访问您。

为了在不同的图像类型之间转换,您需要在请求JSON中添加额外的convert对象。该对象采用三个属性:

  • 您要使用的format指定要将图像转换为的文件类型。
  • 可选的background属性,您可以在其中从透明文件格式(例如PNG和GIF)转换为完全不透明格式(例如JPEG)时指定背景颜色。
  • 可选的keep_extension属性,可让您保持原始文件扩展名,无论输出图像格式如何。

强制性参数:

  • format – 您希望将图像转换为的图像格式。这可以接受以下值之一: jpegpnggif

可选参数:

  • background – 从PNG或GIF(例如JPEG)转换为完全不透明格式的透明文件格式时的背景图像。背景属性可以通过十六进制符号\"#f60\"\"#ff6600\" ,RGB \"rgb(255, 0, 0)\"或RGBA \"rgba(91, 126, 156, 0.7)\" 。默认的背景颜色为白色。
  • keep_extension指导kraken.io api的布尔值( truefalse )是否应将原始扩展名保留在输出文件名中。例如,当将“ image.jpg”转换为png格式时,此标志已打开输出图像名称,即使图像已转换为png,也仍将是“ image.jpg”。默认值是false ,含义正确的扩展名将始终设置。

保存元数据

默认情况下,kraken.io api将剥离图像中发现的所有元数据,以使图像文件尽可能小,并且以有损和无损模式。 EXIF,XMP和IPTC标签,颜色配置文件信息等条目将完全剥离。

但是,在某些情况下,您可能想保留图像中包含的某些元信息,例如版权通知或geotags。为了保留最重要的meta条目,使用以下一个或多个值向您的请求中添加了一个额外的preserve_meta数组:

 {
    \"preserve_meta\" : [ \"date\" , \"copyright\" , \"geotag\" , \"orientation\" , \"profile\" ]
}
  • profile – 将保留ICC颜色配置文件。 ICC颜色配置文件信息为图像增加了不必要的膨胀。但是,在极罕见的情况下,可以保留此信息可能会导致所得文件的亮度和/或饱和度变化。
  • date – 将保留图像创建日期。
  • copyright – 将保留版权条目。
  • geotag将保留特定于位置的信息。
  • orientation – 将保留方向(旋转)标记。

示例集成:

 <?php

require_once ( \" Kraken.php \" );

$ kraken = new Kraken ( \" your-api-key \" , \" your-api-secret \" );

$ params = array (
    \" file \" => \" /path/to/image/file.jpg \" ,
    \" wait \" => true ,
    \" preserve_meta \" => array ( \" profile \" , \" geotag \" )
);

$ data = $ kraken -> upload ( $ params );

外部存储

Kraken.io API允许您将优化的图像直接存储在S3存储桶,云文件容器,Azure容器或SoftLayer对象存储容器中。只有几个其他参数,您的优化图像将立即将其推向外部存储。

亚马逊S3

强制性参数:

  • key – 您唯一的亚马逊“访问密钥ID”。
  • secret – 您独特的亚马逊“秘密访问密钥”。
  • bucket Amazon S3帐户上的目标容器的名称。
  • region – 您的S3存储桶所在的区域的名称。如果区域与默认一个( us-east-1 )不同,则该字段是必须的。 S3区域的完整列表可以在此处找到。

可选参数:

  • path – S3存储桶中的目标路径(例如\"images/layout/header.jpg\" )。默认为root \"/\"
  • acl目标对象的权限。这可以是\"public_read\"\"private\" 。默认为\"public_read\"

上述参数必须以s3_store密钥传递:

 <?php

require_once ( \" Kraken.php \" );

$ kraken = new Kraken ( \" your-api-key \" , \" your-api-secret \" );

$ params = array (
    \" file \" => \" /path/to/image/file.jpg \" ,
    \" wait \" => true ,
    \" s3_store \" => array (
        \" key \" => \" your-amazon-access-key \" ,
        \" secret \" => \" your-amazon-secret-key \" ,
        \" bucket \" => \" destination-bucket \"
    )
);

$ data = $ kraken -> upload ( $ params );

$data阵列将包含一个kraked_url键,该密钥直接指向您的Amazon S3帐户中的优化文件:

 \" kraked_url \" => \"http: //s3.amazonaws.com/YOUR_CONTAINER/path/to/file.jpg\"

Rackspace云文件

强制性参数:

  • user – 您的Rackspace用户名。
  • key – 您唯一的云文件API键。
  • container – 云文件帐户上目标容器的名称。

可选参数:

  • path – 容器中的目标路径(例如\"images/layout/header.jpg\" )。默认为root \"/\"
  • ssl指导kraken.io api从rackspace cloudfiles获取SSL或非SSL URL的布尔值( truefalse )。默认为false ,含义非SSL URL将返回。

上述参数必须以cf_store密钥传递:

 <?php

require_once ( \" Kraken.php \" );

$ kraken = new Kraken ( \" your-api-key \" , \" your-api-secret \" );

$ params = array (
    \" file \" => \" /path/to/image/file.jpg \" ,
    \" wait \" => true ,
    \" cf_store \" => array (
        \" user \" => \" your-rackspace-username \" ,
        \" key \" => \" your-rackspace-api-key \" ,
        \" container \" => \" destination-container \" ,
        \" ssl \" => true
    )
);

$ data = $ kraken -> upload ( $ params );

如果您的容器是启用了CDN的,那么优化结果将包含kraked_url ,它直接指向云文件帐户中优化的文件位置,例如:

kraked_url => \"http: //e9ffc04970a269a54eeb-cc00fdd2d4f11dffd931005c9e8de53a.r2.cf1.rackcdn.com/path/to/file.jpg\"

如果您的容器不符合CDN的优化文件,则无论如何将存储在您的CloudFiles帐户中,但是kraked_url将指向Kraken.IO API存储中的优化映像URL:

kraked_url => \"http: //dl.kraken.io/ecdfa5c55d5668b1b5fe9e420554c4ee/file.jpg\"

Microsoft Azure

强制性参数:

  • account – 您的Azure存储帐户。
  • key – 您唯一的Azure存储访问密钥。
  • container – Azure帐户上的目标容器的名称。

可选参数:

  • path – 容器中的目标路径(例如\"images/layout/header.jpg\" )。默认为root \"/\"

上述参数必须以azure_store密钥传递:

 <?php

require_once ( \" Kraken.php \" );

$ kraken = new Kraken ( \" your-api-key \" , \" your-api-secret \" );

$ params = array (
    \" file \" => \" /path/to/image/file.jpg \" ,
    \" wait \" => true ,
    \" azure_store \" => array (
        \" account \" => \" your-azure-account \" ,
        \" key \" => \" your-azure-storage-access-key \" ,
        \" container \" => \" destination-container \"
    )
);

$ data = $ kraken -> upload ( $ params );

SoftLayer对象存储

强制性参数:

  • user – 您的SoftLayer用户名。
  • key – 您的SoftLayer API键。
  • container – 软件帐户上的目标容器的名称。
  • region – 您的容器所在的区域的缩写。这可以是以下一个: syd01 lon02 mon01 dal05 tok02 tor01 hkg02 mex01 par01 fra02 mil01 sjc01 ams01 sng01 mel01

可选参数:

  • path – 容器中的目标路径(例如“图像/布局/header.jpg”)。默认为root“/”。
  • cdn_url布尔值是truefalse指示kraken.io api返回优化文件的公共cdn URL。默认为false含义非CDN URL将返回。

以上参数必须在sl_store对象中传递:

 <?php

require_once ( \" Kraken.php \" );
$ kraken = new Kraken ( \" your-api-key \" , \" your-api-secret \" );

// Minimal request, providing only the mandatory parameters */
$ params = array (
    \" file \" => \" /path/to/image/file.jpg \" ,
    \" wait \" => true ,
    \" sl_store \" => array (
        \" user \" => \" your-softlayer-account \" ,
        \" key \" => \" your-softlayer-key \" ,
        \" container \" => \" destination-container \" ,
        \" region \" => \" your-container-location \"
    )
);

$ data = $ kraken -> upload ( $ params );

在下面,您可以找到一个完整的JSON请求的示例,该请求使用sl_store将优化的图像推入SoftLayer对象存储容器。我们将使用URL选项将API用以进行优化的图像来馈送API:

 <?php

require_once ( \" Kraken.php \" );
$ kraken = new Kraken ( \" your-api-key \" , \" your-api-secret \" );

$ params = array (
    \" url \" => \" http://a*w*esom*e-website.com/images/header.jpg \" ,
    \" wait \" => true ,
    \" sl_store \" => array (
        \" user \" => \" your-softlayer-account \" ,
        \" key \" => \" your-softlayer-key \" ,
        \" container \" => \" destination-container \" ,
        \" region \" => \" your-container-location \" ,
        \" cdn_url \" => true ,
        \" path \" => \" images/layout/header.jpg \"
    )
);

$ data = $ kraken -> upload ( $ params );

如果您的SoftLayer容器已启用CDN,并且您已传递了\"cdn_url\": true参数,优化结果将包含kraked_url ,它将直接指向SoftLayer cdn中优化的文件位置,例如:

kraked_url => \"http: //1c231.http.fra02.cdn.softlayer.net/images/layout/header.jpg\"

如果您的容器不启用CDN的kraked_url ,将指向Kraken.io API中的优化图像URL:

kraked_url => \"http: //dl.kraken.io/api/ecdfa5c55d5668b1b5fe9e420554c4ee/header.jpg\" 

许可证 – 麻省理工学院

版权(c)2013-2015 nekkra ug

特此免费授予获得此软件副本和相关文档文件副本(“软件”)的任何人,以无限制处理该软件,包括无限制的使用权,复制,复制,修改,合并,合并,发布,分发,分发,分发,订婚,和/或允许软件的副本,并允许对以下条件提供以下条件,以下是以下条件。

上述版权通知和此许可通知应包含在软件的所有副本或大量部分中。

该软件是“原样”提供的,没有任何形式的明示或暗示保证,包括但不限于适销性,特定目的的适用性和非侵权的保证。在任何情况下,作者或版权持有人都不应对任何索赔,损害赔偿或其他责任责任,无论是在合同,侵权的诉讼中还是其他责任,是由软件,使用或与软件中的使用或其他交易有关的。

下载源码

通过命令行克隆项目:

git clone https://github.com/kraken-io/kraken-php.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 开发教程 kraken php https://www.zuozi.net/31807.html

gopherfy
上一篇: gopherfy
signalrcore
下一篇: signalrcore
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务