NAME
Catalyst::View::Image::Text2Image - View to create text into image AND render GD::Simple-images;
DESCRIPTION
Catalyst::View::Image::Text2Image is a view that creates images using GD::Simple. You can set $c->stash->{Text2Image} to several options that will define your output. The "morph" Option lets your image stretch by length of given string and font-definition. Or you just create an image using GD::Simple and pass it to the view.
SYNOPSIS
- Create a Text2Image view:
-
script/myapp_create.pl view Image::Text2Image Image::Text2Image
- Text2Image example:
-
Your controller: sub Text2Image :Local { my ( $self, $c) = @_; $c->stash->{Text2Image}->{string} ||= 'Done with Catalyst::View::Image::Text2Image'; $c->stash->{Text2Image}->{x} = 10; # doesn't matter in this case, might be just 1 $c->stash->{Text2Image}->{y} = 45; $c->stash->{Text2Image}->{font} = 'Times New Roman'; $c->stash->{Text2Image}->{fontsize} = '15'; $c->stash->{Text2Image}->{bgcolor} = 'black'; $c->stash->{Text2Image}->{fgcolor} = 'green'; $c->stash->{Text2Image}->{moveTo} = [0,44]; $c->stash->{Text2Image}->{angle} = -5; $c->stash->{Text2Image}->{morph} = 1; ### Should the x value be adapted when text is too long? $c->stash->{Text2Image}->{clear} = 1; ### define "clear" to make canvas-color = bgcolor !! $c->stash->{Text2Image}->{transparent} = 'white'; # set color to become transparent $c->detach('View::Image::Text2Image'); }
- Example to process a pre-created image with GD::Simple:
-
(this leaves you all the possibilities of GD::Simple) Your controller: sub Text2Image :Local { my ( $self, $c) = @_; my $img = GD::Simple->new(640, 480); $img->fgcolor('black'); $img->bgcolor('green'); $img->rectangle(10, 10, 150, 150); $img->ellipse(50, 50); $img->moveTo(0,25); $img->font('Times New Roman'); $img->fontsize(18); $img->string('Image processed by Catalyst::View::Image::Text2Image'); $c->stash->{Text2Image}->{'img'} = $img; $c->detach('View::Image::Text2Image'); }
Options
The view is controlled by setting the following values in the stash:
- $c->stash->{Text2Image}->{img}
-
(optional) Can contain a GD::Image object. If set, the view will not create an image but try to process/render this object. If not set, you need at least to provide "y","string", "font" and "fontsize".
- $c->stash->{Text2Image}->{x}
-
The width (in pixels) of the image. Might be altered if option "morph" is set. Only considered if not $c->stash->{Text2Image}->{img}.
- $c->stash->{Text2Image}->{y}
-
The height (in pixels) of the image. Mandatory if not $c->stash->{Text2Image}->{img}
- $c->stash->{Text2Image}->{string}
-
The Text of the image. Only one line supported in this version. Mandatory if not $c->stash->{Text2Image}->{img}
- $c->stash->{Text2Image}->{morph}
-
(optional) Bool. Should the width of the image be adapted to the width of $c->stash->{Text2Image}->{string}? Note: The option "angle" isn't considered in "morph"-functionality, so your images may become to wide if you use "angle" and "morph" together. Only considered if not $c->stash->{Text2Image}->{img}
- $c->stash->{Text2Image}->{font}
-
The font to use for the text. Mandatory if not $c->stash->{Text2Image}->{img}
- $c->stash->{Text2Image}->{fontsize}
-
The font to use for the text. Mandatory if not $c->stash->{Text2Image}->{img}
- MORE Options...
-
More GD::Simple Options are just applied by values in the stash. Tested in this version are: bgcolor, fgcolor, moveTo, clear, transparent and angle. Refer to examples for more informations on that.
Image format
The generated images will always be produced in the PNG-Format.
SEE ALSO
GD::Simple Catalyst::View
AUTHOR
Martin Gillmaier (MG), <gillmaus at cpan.org>
SUPPORT
Critics, requests, commercial support and training for this module is available: Contact "gillmaus at cpan.org" for details.
COPYRIGHT & LICENSE
Copyright (C) 2012 Martin Gillmaier (GILLMAUS).
This module is free software; you can redistribute it and/or modify it under the same terms as Perl 5.10.0. For more details, see the full text of the licenses in the directory LICENSES.
This module is distributed in the hope that it will be useful, but it is provided "as is" and without any express or implied warranties.
METHODS
process
Main method of the view.
text2image
Converts a texts into a png-image using GD::Simple;
param: Hash-Ref of GD::Simple options (meaning: function=>value), for example:
{
### MUST-values:
x => 100,
y => 20,
font => 'Times New Roman',
fontsize => 18,
string => 'Huhu..its me..your pic!',
### OPTIONAL Values:
morph => 1, # optional, will adapt x to string-width
clear => '1', # to set canvas-color=bgcolor.
transparent => 'white' # make background transparent
### other optional, GD::Simple Values:
fgcolor => 'black',
bgcolor => 'white',
angle => -5,
moveTo => [0,20] # Move pencil
}
return: GD image-Object