karikas / blitline
Blitline API 包装器
Requires
- php: >=5.3.2
This package is not auto-updated.
Last update: 2024-01-02 01:26:48 UTC
README
这是一个针对 Blitline 云端图像处理 API 的 PHP 包装器。我并不代表 Blitline,但真的很想在我们的 PHP 代码中使用他们的系统,因此创建了此库。
先决条件
在开始使用此库之前,请确保您已从 Blitline 获取应用程序 ID - 有关详细信息,请参阅 www.blitline.com。您需要运行 PHP 5.3 并已安装 CURL,我相信这就足够了。
如何使用此库
首先,获取您的 API 密钥。您可以在实例化 Blitline 时传入此密钥,或者在实例化 Blitline 对象之前设置一个名为 BLITLINE_APP_ID 的常量。这里的流程是:
- 一次性实例化
- 加载图像
- 设置 S3 目标信息(可选)
- 添加过滤器,按照操作顺序
- 可选 - 启动另一个请求并重复此过程。这允许对同一个源文件进行多组操作!
- 处理
以下是一个基本示例。这将将图像调整为 256x256,然后应用默认锐化,并返回生成的文件位置。
define('BLITLINE_APP_ID', 'YOUR-APP-ID-FROM-BLITLINE-DOT-COM'); include('lib/blitline_php.php'); $src = 'http://p.twimg.com/Atb2B0MCAAADLk6.jpg'; $Blit = new Blitline_php(); $Blit->load($src); $Blit->do_resize_to_fill(256, 256); $Blit->do_sharpen(); $results = $Blit->process(); if ($results->success()) { foreach($results->get_images() as $name => $url) { echo "Processed: {$name} at {$url}\n"; } } else { print_r($results->get_errors()); }
此示例将创建三个不同大小的缩略图并保存
define('BLITLINE_APP_ID', 'YOUR-APP-ID-FROM-BLITLINE-DOT-COM'); include('lib/blitline_php.php'); $src = 'http://placekitten.com/1024/768'; $Blit = new Blitline_php(); $Blit->load($src, 'kitten-256.jpg'); // Passing in our own image identifier // Resize 256 pixel image $Blit->do_resize_to_fill(256, 256); // 512 pixel image, sharpened, 45 % quality $Blit->set_image_id('kitten-512.jpg'); $Blit->set_jpg_quality(45); $Blit->do_resize_to_fit(512, 512); $Blit->do_sharpen(); // One more tiny one for fun $Blit->new_request(); $Blit->set_image_id('kitten-48.jpg'); $Blit->set_jpg_quality(75); $Blit->do_resize_to_fill(48, 48); $results = $Blit->process(); if ($results->success()) { foreach($results->get_images() as $name => $url) { echo "Processed: {$name} at {$url}\n"; } } else { print_r($results->get_errors()); }
...在此阶段,支持的函数并不多,但我想尽快让这个库可用。
想要保存到 Amazon AWS S3 存储桶吗?
您也可以配置此功能以保存到 S3 存储桶。首先,您需要遵循 Blitline 的指南 http://www.blitline.com/docs/s3_permissions 在尝试保存任何内容之前,为您的目标 S3 存储桶添加权限。
在实例化类和调用 process() 之间,设置 $Blit->set_s3_target($bucket, $key, $headers),其中
- $bucket 是您 blitline-批准的存储桶名称
- $key 是保存的键/文件名。注意,“文件夹”在这里也适用。
- $headers 是可选的关联数组,包含额外的头信息。请参阅 http://www.blitline.com/docs/s3_headers 和 http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUT.html
例如,一个简单的示例:
$Blit = new Blitline_php('YOUR-API-KEY'); $Blit->load('http://img.gawkerassets.com/img/17wen4d92trn3jpg/original.jpg'); $Blit->set_s3_target('my-s3-bucket', 'thumbs/tranquil-countryside.jpg'); $Blit->do_resize_to_fill(72, 72); $Blit->process();
请注意,如果您正在执行多个请求,则需要为每个要保存的图像设置 S3 目标,否则它将鲁莽地覆盖原始文件。
您还可以通过调用 clear_s3_target() 清除 S3 目标。
注意事项
- 您的源文件绝对必须来自公共 URL,不允许使用本地路径。
- Blitline 返回的图像 URL 在返回给您时将无效,Blitline 会将图像处理排队,因此您的图像可能需要几秒钟才能出现在那里。要确定您的图像是否真的已经处理完成,您需要轮询作业 ID,但此功能目前尚不在库中。
- 想查看迄今为止发生的所有日志?调用get_log();以返回或get_log(TRUE)以输出。
- 想查看迄今为止发生的所有错误日志?调用get_errors();以返回或get_errors(TRUE)以输出。
- 想查看是否发生了错误?调用error_occurred(),返回TRUE/FALSE。
- 想边进行边查看日志/错误?调用debug_on()(也有debug_off())
待办事项列表
- 添加来自Blitline API的所有附加过滤器/函数
- 添加支持保存到8位PNG
- 添加附加的错误检查
- 添加支持轮询
- 附加文档
许可协议
Apache License 2.0适用于此存储库中的所有代码。
版权所有 2012 Michael Karikas
根据Apache License,版本2.0(“许可协议”);除非遵守许可协议,否则不得使用此文件。您可以在以下位置获取许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则在许可下分发的软件按“原样”分发,不提供任何明示或暗示的保证或条件。有关许可协议中规定的权限和限制的具体语言,请参阅许可协议。
变更日志
0.1 初次发布,支持组合(图像水印/组合)、resize_to_fill、resize_to_fit、trim和sharpen。