NAME
Dancer::Plugin::Thumbnail - Easy thumbnails creating with Dancer and GD
VERSION
Version 0.05
SYNOPSIS
use Dancer;
use Dancer::Plugin::Thumbnail;
# simple resize
get '/resized/:width/:image' => sub {
resize param('image') => { w => param 'width' };
}
# simple crop
get '/cropped/:width/:image' => sub {
crop param('image') => { w => param 'width' };
}
# more complex
get '/thumb/:w/:h/:image' => sub {
thumbnail param('image') => [
crop => { w => 200, h => 200, a => 'lt' },
resize => { w => param('w'), h => param('h'), s => 'min' },
], { format => 'jpeg', quality => 90 };
}
METHODS
thumbnail ( $file, \@operations, \%options )
Makes thumbnail image from original file by chain of graphic operations. Image file name may be an absolute path or relative from config->{'public'}. Each operation is a reference for two elements array. First element is an operation name (currently supported 'resize' and 'crop') and second is operation arguments as hash reference (described in appropriate operation section).
After operations chain completed final image creates with supplied options:
- cache
-
Directory name for storing final results. Undefined setting (default) breaks caching and isn't recommended for any serious production usage. Relative cache directory will be prefixed with config->{'appdir'} automatically. Cache path is generated from original file name, its modification time, operations with arguments and an options. If you are worried about cache garbage collecting you can create a simple cron job like:
find /cache/path -type f -not -newerat '1 week ago' -delete
- format
-
Specifies output image format. Supported formats are 'gif', 'jpeg' and 'png'. Special format 'auto' (which is default) creates the same format as original image has.
- compression
-
PNG compression level. From '0' (no compression) to '9' (maximum). Default is '-1' (default GD compression level for PNG creation).
- quality
-
JPEG quality specifications. From '0' (the worse) to '100' (the best). Default is 'undef' (default GD quality for JPEG creation).
Defaults for these options can be specified in config.yml:
plugins:
Thumbnail:
cache: var/cache
compression: 7
quality: 50
crop ( $file, \%arguments, \%options )
This is shortcut (syntax sugar) fully equivalent to call:
thumbnail ( $file, [ crop => \%arguments ], \%options )
Arguments includes:
- w | width
-
Desired width (optional, default not to crop by horizontal).
- h | height
-
Desired height (optional, default not to crop by vertical).
- a | anchors
-
Two characters string which indicates desired fragment of original image. First character can be one of 'l/c/r' (left/right/center), and second - 't/m/b' (top/middle/bottom). Default is 'cm' (centered by horizontal and vertical).
resize ( $file, \%arguments, \%options )
This is shortcut and fully equivalent to call:
thumbnail ( $file, [ resize => \%arguments ], \%options )
Arguments includes:
- w | width
-
Desired width (optional, default not to resize by horizontal).
- h | height
-
Desired height (optional, default not to resize by vertical).
- s | scale
-
The operation always keeps original image proportions. Horizontal and vertical scales calculates separately and 'scale' argument helps to select maximum or minimum from "canditate" values. Argument can be 'min' or 'max' (which is default).
AUTHOR
Oleg A. Mamontov, <oleg at mamontov.net>
BUGS
Please report any bugs or feature requests to bug-dancer-plugin-thumbnail at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Dancer-Plugin-Thumbnail. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Dancer::Plugin::Thumbnail
You can also look for information at:
RT: CPAN's request tracker (report bugs here)
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Dancer-Plugin-Thumbnail
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
LICENSE AND COPYRIGHT
Copyright 2011 Oleg A. Mamontov.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.