rostenkowski / resize
此软件包最新版本(v4.0)的许可证信息不可用。
v4.0
2017-10-04 04:08 UTC
Requires
- php: >=7.1
- ext-gd: *
- ext-json: *
- ext-mbstring: *
- ext-tokenizer: *
- latte/latte: ^3.0
- nette/application: ^3.0
- nette/di: ^3.0
- nette/http: ^3.0
- nette/utils: ^3.0
Requires (Dev)
- nette/finder: ^3.0
- nette/tester: dev-master
Suggests
- ext-imagick: to use rotate()
README
Nette Framework的高性能图像处理组件(Nette 框架)
安装
composer require rostenkowski/resize
配置
最佳方式是在应用配置中使用内置的Nette DI容器扩展,通常位于app/config.neon
。您可以将配置的imageStore
部分放置在您的本地配置文件中。
extensions: resize: Rostenkowski\Resize\Extension resize: storageDir: %baseDir%/data/images cacheDir: %baseDir%/www/images basePath: /images/
手动配置
如果您不使用DI扩展,则应在Latte引擎中注册图像宏,具体操作方式请参阅文档。
nette: latte: macros: - Rostenkowski\Resize\Macro\ImageMacro::install
可以在展示器中手动创建存储,或以此方式注册为服务。
services: - images: Rostenkowski\ImageStore\ImageStorage("%baseDir%/data/images", "%baseDir%/www/images", "/images/")
要求
- PHP 推荐使用 5.6,最低要求 5.5
- Nette 推荐使用 2.3,最低要求 2.2
此库已针对PHP 5.5、5.6 和 7.0 以及Nette 2.3 进行了测试,但它应该与之前的稳定版Nette 2.2 和最新的Nette 2.4-dev 兼容。
有关依赖项的完整列表,请参阅composer.json
文件。
API
要查看完整的API文档,请导航到docs/api/
目录并打开index.html
文件。
存储
<?php use Rostenkowski\Resize\Meta; use Rostenkowski\Resize\File; use Rostenkowski\Resize\Request; use Rostenkowski\Resize\ImageStorage; use Nette\Application\Responses\FileResponse; use Nette\Http\FileUpload; use Nette\Utils\Image; // create storage $storage = new ImageStorage('/data/images', '/www/images', '/images/'); // add an image from file $storage->add(File $image, Meta $meta); // add a HTTP uploaded file $storage->upload(FileUpload $file, Meta $meta); // check that an image already exists in the storage $storage->contains(Meta $meta); // fetch original $storage->original(Meta $meta); // rotate image $storage->rotate(Meta $meta, 90); // Meta // downloaded requested thumbnail $storage->download(Request $request); // Nette\Application\Responses\FileResponse // fetch requested thumbnail $storage->fetch(Request $request); // link requested thumbnail $storage->link(Request $request); // output requested thumbnail to stdout $storage->send(Request $request);
技术概述
- 图像以常规文件形式存储在指定目录中。
- 文件以目录树的形式组织,最多包含256²个目录,采用两层结构,因此在一个目录中约有1K个文件时,存储可以存储约6.5M的图像,而不会影响性能。
- 由于使用了用于创建目录路径的图像哈希,目录树得到了良好的平衡。
- 存储仅存储一个文件,即使同一图像存储多次也是如此。
- 图像缩略图按需创建并缓存在缓存目录中。
贡献
您可以随意打开一个问题或Pull Request。
此库的源代码完全由Nette Tester测试覆盖。
要运行测试套件,请使用Composer安装依赖项,然后在linux上运行bin/run-tests.sh
脚本。在windows上,您可以在例如git bash中运行:bin/run-tests-win.sh
。
bin/run-tests.sh
_____ ___ ___ _____ ___ ___
|_ _/ __)( __/_ _/ __)| _ )
|_| \___ /___) |_| \___ |_|_\ v2.0.x
PHP 5.6.5 (cgi-fcgi) | php-cgi -n -c tests/php.ini | 1 thread
.............
OK (13 tests, 2.7 seconds)
要检查代码覆盖率,请参阅docs/coverage.html
文件。
示例代码
请参阅使用维基页面。