NAME

Image::Empty - Hassle-free empty/transparent 1x1 pixel images for tracking URLs.

VERSION

Version 0.11

SYNOPSIS

Create 1x1 pixel empty/transparent GIFs to use in tracking URLs without the hassle of actually creating and/or loading images.

use Image::Empty;

my $gif = Image::Empty->gif;

print CGI->new->header( -type => $gif->type, -Content_length => $gif->length );

print $gif->content;

Or...

my $gif = Image::Empty->gif;

$gif->render( CGI->new );

Or, if you are working with Plack...

my $gif = Image::Empty->gif;

return $gif->render( Plack::Response->new );

METHODS

Class Methods

new

Returns an instance representing an empty image.

my $empty = Image::Empty->new;

gif

Returns an instance representing an empty GIF for use in responding to HTTP requests.

my $gif = Image::Empty->gif;

Instance Methods

render

CGI

Supplying a CGI object to the render method will set the HTTP header and content.

A string is returned for you to print, you can condense this down to a single line by chaining methods.

print Image::Empty->gif->render( CGI->new );

It is the same as doing...

my $gif = Image::Empty->gif;

print CGI->new->header( -type                => $gif->type,
                        -Content_length      => $gif->length,
                        -Content_disposition => $gif->disposition . '; filename="' . $gif->filename . '"',
                      );

print $gif->content;

Plack

If you are working under Plack, we support that too.

This scenario returns the finalized Plack::Response object, as a quick one-liner...

my $app = sub {

        return Image::Empty->gif->render( Plack::Response->new );
}

It is the same as doing...

my $app = sub {

        my $gif = Image::Empty->gif;

        my $response = Plack::Response->new;

        $response->status(200);

        $response->content_type( $gif->type );
        $response->content_length( $gif->length );

        $response->header( 'Content-disposition' => $gif->disposition . '; filename="' . $gif->filename . '"' );

        return $response->finalize;
}

Attributes

type

$gif->type;

Returns the mime/type of the image for use in HTTP headers.

length

$gif->length;

Returns the content length for use in HTTP headers.

disposition

$gif->disposition;

Returns the content disposition for use in HTTP headers.

filename

$gif->filename;

Returns the content filename for use in HTTP headers.

content

$gif->content;

Returns the image data to send in the HTTP response body.

TODO

PNG support

Catalyst support

AUTHOR

Rob Brown, <rob at intelcompute.com>

BUGS

Please report any bugs or feature requests to bug-image-empty at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Image-Empty. I will be notified, and then you will 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 Image::Empty

You can also look for information at:

ACKNOWLEDGEMENTS

I can not actually remember where the original line came from to produce the gif content.

LICENSE AND COPYRIGHT

Copyright 2012 Rob Brown.

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.