High Performance Image Storage Library for PHP 7
BSD-3-CLAUSE License
High Performance Image Processing Component for Nette Framework
Download the latest package manually or better use the composer
composer require rostenkowski/resize
The best way is to use the built-in Nette DI container extension in application configuration, usually located in app/config.neon
. You can place the imageStore
part of the configuration to your local configuration file.
extensions:
resize: Rostenkowski\Resize\Extension
resize:
storageDir: %baseDir%/data/images
cacheDir: %baseDir%/www/images
basePath: /images/
Manual configuration
If you aren't using the the DI extension the image macros should be registered to the Latte engine as described in the [docs](https://doc.nette.org/en/2.2/configuring#toc-latte):
nette:
latte:
macros:
- Rostenkowski\Resize\Macro\ImageMacro::install
The storage can be created manually in presenter or registered as service this way:
services:
- images: Rostenkowski\ImageStore\ImageStorage("%baseDir%/data/images", "%baseDir%/www/images", "/images/")
The library is tested against PHP 5.5, 5.6 and 7.0 and Nette 2.3 but it should be compatible with previous stable Nette 2.2 and the latest Nette 2.4-dev as well.
For the full list of dependencies see the composer.json
file.
For the full API documentation navigate to the docs/api/
directory and open index.html
file.
<?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);
Feel free to open an Issue or Pull Request.
The source code of the library is fully covered by Nette Tester tests.
To run the test suite simply install the dependencies
using composer and then run the bin/run-tests.sh
script on linux. On windows u can run in eg. 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)
To check the code coverage see the docs/coverage.html
file.
Please see the Usage wiki page.