Image::Info::XBM - XBM support for Image::Info


Image-Info documentation Contained in the Image-Info distribution.

Index


Code Index:

NAME

Top

Image::Info::XBM - XBM support for Image::Info

SYNOPSIS

Top

 use Image::Info qw(image_info dim);

 my $info = image_info("image.xbm");
 if (my $error = $info->{error}) {
     die "Can't parse image info: $error\n";
 }
 my $color = $info->{color_type};

 my($w, $h) = dim($info);

DESCRIPTION

Top

This modules supplies the standard key names except for Compression, Gamma, Interlace, LastModificationTime, as well as:

HotSpotX

The x-coord of the image's hotspot. Set to -1 if there is no hotspot.

HotSpotY

The y-coord of the image's hotspot. Set to -1 if there is no hotspot.

L1D_Histogram

Reference to an array representing a one dimensioanl luminance histogram. This key is only present if image_info is invoked as image_info($file, L1D_Histogram=>1). The range is from 0 to 1.

METHODS

Top

process_file()

	$info->process_file($source, $options);

Processes one file and sets the found info fields in the $info object.

AUTHOR

Top

FILES

Top

This module requires Image::Xbm

SEE ALSO

Top

Image::Info, Image::Xbm

NOTES

Top

For more information about XBM see http://www.martinreddy.net/gfx/2d/XBM.txt.

AUTHOR

Top

Jerrad Pierce <belg4mit@mit.edu>/<webmaster@pthbb.org>

Tels - (c) 2006

Current maintainer: Slaven Rezic <srezic@cpan.org>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


Image-Info documentation Contained in the Image-Info distribution.
package Image::Info::XBM;
$VERSION = '1.07';
use strict;
use Image::Xbm 1.07;

sub process_file {
    my($info, $source, $opts) = @_;

    local $SIG{__WARN__} = sub {
	$info->push_info(0, "Warn", shift);
    };

    my $i = Image::Xbm->new(-width => 0, -height => 0);
    # loading the file as a seperate step avoids a "-r" test, this would
    # file with in-memory strings (aka fake files)
    $i->load($source);

    $info->push_info(0, "color_type" => "Grey");
    $info->push_info(0, "file_ext" => "xbm");
    $info->push_info(0, "file_media_type" => "image/x-xbitmap");
    $info->push_info(0, "height", $i->get(-height));
    $info->push_info(0, "resolution", "1/1");
    $info->push_info(0, "width", $i->get(-width));
    $info->push_info(0, "BitsPerSample" => 1);
    $info->push_info(0, "SamplesPerPixel", 1);

    $info->push_info(0, "ColorTableSize" => 2 );
    if(  $opts->{L1D_Histogram} ){
	#Do Histogram
	my $imgdata = $i->as_binstring();
	$info->push_info(0, "L1D_Histogram", [$imgdata =~ tr/0//d,
					      $imgdata =~ tr/1//d ]);
    }
    $info->push_info(0, "HotSpotX" => $i->get(-hotx) );
    $info->push_info(0, "HotSpotY" => $i->get(-hoty) );
}
1;
__END__