The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Image::Empty - Empty/transparent 1x1 pixel images for use in tracking URLs.

VERSION

Version 0.05

SYNOPSIS

Create 1x1 pixel empty/transparent GIFs to use in tracking URLs.

 my $empty_gif = Image::Empty->gif;
 
 print CGI->new->header( -type => $empty_gif->type, -Content_length => $empty_gif->length );
 
 print $empty_gif->content;

Or

 my $gif = Image::Empty->gif;
 
 $gif->render( CGI->new );

Or, if running under Plack

 my $gif = Image::Empty->gif;
 
 return $gif->render( Plack::Response->new );

METHODS

Attributes

type

 $empty_image->type;

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

length

 $empty_image->length;

Returns the content length for use in HTTP headers.

disposition

 $empty_image->disposition;

Returns the content disposition for use in HTTP headers.

filename

 $empty_image->filename;

Returns the content filename for use in HTTP headers.

content

 $empty_image->content;

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

Class Methods

gif

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

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

Instance Methods

render

CGI

You can supply a CGI object to the render method to have the HTTP header and content set for you.

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::Response

If you are working under Plack, this module supports 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;
         
         return $gif->render( $response );
 }

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.