karikas/blitline

此软件包已被废弃且不再维护。未建议替代软件包。

Blitline API 包装器

dev-master 2013-07-21 09:43 UTC

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),其中

例如,一个简单的示例:

$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。