This is a simple image storage for Nette Framework
The best way to install brabijan/images is using Composer:
$ composer require brabijan/images:@dev
Then you have to register extension in config.neon
.
extensions:
- Brabijan\Images\DI\ImagesExtension
Package contains trait, which you will have to use in class, where you want to use image storage. This works only for PHP 5.4+, for older version you can simply copy trait content and paste it into class where you want to use it.
<?php
class BasePresenter extends Nette\Application\UI\Presenter {
use Brabijan\Images\TImagePipe;
}
/** @var Brabijan\Images\ImageStorage $imageStorage */
$imageStorage->upload($fileUpload); // saves to .../assetsDir/original/filename.jpg
$imageStorage->setNamespace("products")->upload($fileUpload); // saves to .../assetsDir/products/original/filename.jpg
<a href="{img products/filename.jpg}"><img n:img="filename.jpg, 200x200, fill"></a>
output:
<a href="/assetsDir/products/original/filename.jpg"><img src="/assetsDir/200x200_4/filename.jpg"></a>
Using in Texy!
First you have to register macro into Texy!
$texy = new Texy;
$this->registerTexyMacros($texy);
Now you can just use it. Macro expands native image macro in Texy. Here is the syntax.
[* products/filename.jpg, 200x200, fill *]
If file not found in image storage, macro try to search file in document root. Of course you can add title or floating of image, as you know from pure Texy!
For resizing (third argument) you can use these keywords - fit
, fill
, exact
, stretch
, shrink_only
. For details see comments above these constants