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);
print $htc->output;

The Template:

<html>
    <body>
    <img [%= gd_object escape="INLINE_IMG" %] alt="[Rendered GD Image]">
    </body>
</html>

This will create an inline image. The GD-object 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 (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 as png

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.

SEE ALSO

HTML::Template::Compiled

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.