depage / graphics
depage-graphics is a helper class to get resized and optimized images and thumbnails.
Requires
- php: >= 5.3
Requires (Dev)
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2024-10-25 09:36:14 UTC
README
depage-graphics is a helper class to get resized and optimized images and thumbnails.
Features
- supports gd as basic image resizing method
- support imagemagick and graphicsmagick binaries for better image quality support
- support external tools to optimize images like
- jpegtran
- jpegoptim
- optipng
- pngcrush
- composer support
You can compare depage-graphics to SLIR, Smart Lencioni Image Resizer. But where SLIR is only gd-based, you can use Imagemagick or Graphicsmagick as conversion tools to achieve better image quality.
Basic Usage as Image Service
You can use the graphics class as an image service to automatically resize, crop, convert and optimize your images, or to generate thumbnails.
To convert your image you add specific action to your image:
/path-to/image.jpg.resize-400x400.jpg
/path-to/image.jpg.r400x400.jpg
/path-to/image.jpg.thumb-100x75.jpg
/path-to/image.jpg.t100x75.jpg
/path-to/image.jpg.crop-200x200-10x10.jpg
/path-to/image.jpg.c200x200-10x10.jpg
You can also chain actions and parameters:
/path-to/image.png.resize-400x400.quality-50.background-ffffff.jpg
/path-to/image.png.r400x400.q50.bg-ffffff.jpg
This would resize your image to 400x400px set the jpeg quality to 50 and add a white background for transparent pixels.
Basic image service
Basic usage as image service with the gd library and no image optimization:
<?php require_once(__DIR__ . "/php/Graphics/Graphics.php"); $imgurl = new Depage\Graphics\Imgurl(); $imgurl->render()->display();
Extended Usage with Options
Extended usage as image service with the imagemagick as conversion utility and jpegtran and optipng as optimization tools:
<?php require_once(__DIR__ . "/php/Graphics/Graphics.php"); $imgurl = new Depage\Graphics\Imgurl(array( 'extension' => "im", 'executable' => "/usr/bin/convert", 'optimize' => true, 'optimizers' => array( 'jpegtran' => "/usr/bin/jpegtran", 'optipng' => "/usr/bin/optipng", ), )); $imgurl->render()->display();
Usage as Image-Editing/Conversion Tool
<?php require_once(__DIR__ . "/php/Graphics/Graphics.php"); $graphics = new Depage\Graphics\Graphics(array( 'extension' => "im", 'executable' => "/usr/bin/convert", 'optimize' => true, 'optimizers' => array( 'jpegtran' => "/usr/bin/jpegtran", 'optipng' => "/usr/bin/optipng", ), )); $graphics->addResize(400, 400); $graphics->addBackground("#ffffff"); $graphics->render("sourceImage.png", "targetImage.jpg");
Webserver Configuration
nginx
location /basedirectory {
location ~ (?i)/basedirectory/(.*)\.(jpg|jpeg|gif|png)\.([^/]*)\.(jpg|jpeg|gif|png)$ {
rewrite (?i)^(/basedirectory)/(?!lib/cache/graphics)(.*)$ $1/lib/cache/graphics/$2 last;
try_files $uri /basedirectory/lib/global/getimage.php;
}
try_files $uri $uri/;
}
Apache
@todo
.htacess
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(?!lib/cache/graphics)(.*)\.(jpg|jpeg|png|gif)\.([^/]*)\.(jpg|jpeg|png|gif)$ /lib/cache/graphics/$0
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^lib/cache/graphics/(.*)\.(jpg|jpeg|png|gif)\.([^/]*)\.(jpg|jpeg)$ /lib/global/getimage.php [T=image/jpeg]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^lib/cache/graphics/(.*)\.(jpg|jpeg|png|gif)\.([^/]*)\.(png)$ /lib/global/getimage.php [T=image/png]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^lib/cache/graphics/(.*)\.(jpg|jpeg|png|gif)\.([^/]*)\.(gif)$ /lib/global/getimage.php [T=image/gif]
Install Using Composer
Get composer at http://getcomposer.org and then just add this to your composer.json.
{
"require": {
"depage/graphics": "dev/master"
}
}
Now run
composer install
to install the current version of depage-graphics into your vendor dir.
Prerequisites
- PHP 5.3 with following modules
- gd support
- external binaries (optional)
- convert
- gm
- jpegtran
- jpegoptim
- optipng
- pngcrush
For more information
You can fork us at: http://github.com/depage/depage-graphics/
For more information about depage-cms go to: http://www.depagecms.net/