NAME
HTML::Template::Compiled::Plugin::InlineImage - Inline-Images with HTML::Template::Compiled
SYNOPSIS
The Perl code:
use HTML::Template::Compiled::Plugin::InlineImage;
my $htc = HTML::Template::Compiled->new(
plugin => [qw(HTML::Template::Compiled::Plugin::InlineImage)],
filename => "template.htc",
tagstyle => [qw(+tt)],
);
$htc->param(gd_object => $gd);
$htc->param(raw_data => $data_from_image_file);
print $htc->output;
The Template:
<html>
<body>
<img [%= gd_object escape="INLINE_IMG" %] alt="[Rendered GD Image]">
<img [%= raw_data escape="INLINE_IMG" %] alt="[Rendered Image]">
</body>
</html>
This will create an inline image. The GD-object/the raw image output is turned into base64 and put into a src attribute.
The output looks like
src="data:image/type;base64,...." width="42" height="42"
Note that the maximum length for a HTML src attribute is 1024. If your image is bigger you will get a warning.
To avoid the warning, set $HTML::Template::Compiled::Plugin::InlineImage::SIZE_WARNING
to 0.
DESCRIPTION
This is a plugin for HTML::Template::Compiled. If you feed it GD-objects or raw images (other image-object-types could be added in the future), then it will render the object like described in RFC 2397 (http://www.ietf.org/rfc/rfc2397.txt).
ESCAPE TYPES
There are four escapy types at the moment:
- INLINE_IMG_PNG
-
renders as png
- INLINE_IMG_GIF
-
renders as gif
- INLINE_IMG_JPEG
-
renders as jpeg
- INLINE_IMG
-
renders per default as png, or if you feed it raw data, it will guess the image type.
METHODS
- register
-
Gets called by HTC. It should return a hashref. I will document soon in HTML::Template::Compiled what this method should return to create a plugin. Until then, have a lok at the source =)
SUBROUTINES
- inline
-
Arguments: a hash like
type => 'png', # or jpeg, gif image => $gd_object,
The subroutine determines which kind of image object we have and calls the corresponding *_to_binary method. (At the moment only GD is supported.)
This function is usually only used internally.
- gd_to_binary
-
Arguments: ($gd_object, $type)
$type can be png, jpeg or gif.
Returns:
src="data:image/$type;base64,$the_rendered_image_as_base64", width of image, heigth of image
This function is usually only used internally.
ERROR MESSAGES, WARNINGS
If your image is (in base64, plus mime type) bigger than 1024 bytes, you'll get a warning like:
Image is too big (1234 characters > 1024)
To avoid the warning, set $HTML::Template::Compiled::Plugin::InlineImage::SIZE_WARNING
to 0.
EXAMPLES
Simple examples:
"gd.pl"" in "examples and "gd.html"" in "examples
"raw.pl"" in "examples and "raw.html"" in "examples
SEE ALSO
COPYRIGHT AND LICENSE
Copyright (C) 2006 by tina mueller
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.5 or, at your option, any later version of Perl 5 you may have available.