Tina Müller > HTML-Template-Compiled-Plugin-InlineImage-0.03 > HTML::Template::Compiled::Plugin::InlineImage

Download:
HTML-Template-Compiled-Plugin-InlineImage-0.03.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.03   Source  

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 ^

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.

syntax highlighting: