thapp / jmg
即时图像处理。
dev-processchain
2016-03-05 15:13 UTC
Requires
- php: ^5.6 || ^7.0
- thapp/image: dev-develop
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: 5.2.*@dev
This package is not auto-updated.
Last update: 2024-09-26 00:14:38 UTC
README
即时图像处理:基于HTTP的图像处理库。
安装
> composer composer require thapp/jmg
运行测试
> composer install > vendor/bin/phpunit -c phpunit.xml.dist
快速开始
使用ImageResolver
类,可以从参数字符串中轻松解析图像。
<?php use Thapp\Jmg\ParamGroup; use Thapp\Jmg\Image\Processor; use Thapp\Jmg\Resolver\PathResolver; use Thapp\Jmg\Resolver\LoaderReslover; use Thapp\Jmg\Resolver\ImageResolver; $processor = new Thapp\Jmg\Image\Processor( new Thapp\Image\Driver\Gd\Source ); $images = new ImageResolver($source, $pathResolver, $loaderResolver); if ($resource = $res->resolve('images/source.jpg', ParamGroup::fromString('2/400/400/5'))) { header('Content-Type: image/jpeg'); echo $resource->getContents(); }
核心概念
源加载器和解析器
Jmg支持从多种源加载图像。在下面的示例中,假设我们有一个本地文件系统,其中包含我们的图像。
<?php use Thapp\Jmg\Loader\FilesystemLoader; use Thapp\Jmg\Resolver\LoaderReslover; use Thapp\Jmg\Resolver\PathResolver; $loaderResolver = new LoaderResolver; $pathResolver = new PathResolver; $pathResolver->add('local', __DIR__.'public/images'); $loaderResolver->add('local', new FilesystemLoader); // tries to resolve a given prefix path; if (!$loader === $loaderResolver->resolve('local')) // returns the FilesystemLoader { //then error } if (null === $path = $pathResolver->resolve('local')) { //then error } $src = $loader->load($path . '/image.jpg');
自定义加载器
您可以创建自己的加载器,例如,从远程源加载图像,如Amazon S3存储或FTP服务器。
您的自定义加载器必须实现Thapp\Jmg\Loader\LoaderInterface
或简单地扩展自Thapp\Jmg\Loader\AbstractLoader
。
<?php namespace Acme\Loaders; use Thapp\Jmg\Loader\AbstractLoader class AWSLoader extends AbstractLoader { /** * @throws Thapp\Jmg\Exception\SourceLoaderException * @return Thapp\Jmg\Resource\FileResourceInterface */ public function load($file) { //… } /** * @return bool */ public function supports($path) { //… } }