| Image-Info documentation | Contained in the Image-Info distribution. |
Image::Info::SVG - SVG support for Image::Info
use Image::Info qw(image_info dim);
my $info = image_info("image.svg");
if (my $error = $info->{error}) {
die "Can't parse image info: $error\n";
}
my $title = $info->{SVG_Title};
my($w, $h) = dim($info);
This modules supplies the standard key names except for BitsPerSample, Compression, Gamma, Interlace, LastModificationTime, as well as:
The image description, corresponds to <desc>.
A scalar or reference to an array of scalars containing the URI's of embedded images (JPG or PNG) that are embedded in the image.
Whether or not the image is standalone.
The image title, corresponds to <title>
The URI of the DTD the image conforms to.
$info->process_file($source, $options);
Processes one file and sets the found info fields in the $info object.
This module requires either XML::LibXML::Reader or XML::Simple.
Previous versions (until Image-Info-1.28) used XML::Simple as the
underlying parser. Since Image-Info-1.29 the default parser is
XML::LibXML::Reader (which is much more faster, memory-efficient,
and does not rely on regular expressions for some aspects of XML
parsing. If for some reason you need the old parser, you can force it
by setting the variable @Image::Info::SVG::PREFER_MODULE as early
as possible:
use Image::Info;
@Image::Info::SVG::PREFER_MODULE = qw(Image::Info::SVG::XMLSimple Image::Info::SVG::XMLLibXMLReader);
The variable $Image::Info::SVG::USING_MODULE can be queried to see
which parser is in use (after Image::Info::SVG is required).
For more information about SVG see http://www.w3.org/Graphics/SVG/
Random notes:
Colors
# iterate over polygon,rect,circle,ellipse,line,polyline,text for style->stroke: style->fill:?
# and iterate over each of these within <g> too?! and recurse?!
# append <color>'s
# perhaps even deep recursion through <svg>'s?
ColorProfile <color-profile>
RenderingIntent ?
requiredFeatures
requiredExtensions
systemLanguage
Jerrad Pierce <belg4mit@mit.edu>/<webmaster@pthbb.org> wrote the original code based on XML::Simple
Slaven Rezic <srezic@cpan.org> wrote the code using XML::LibXML::Reader
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. |
# -*- perl -*- # # Author: Slaven Rezic # # Copyright (C) 2009 Slaven Rezic. All rights reserved. # This package is free software; you can redistribute it and/or # modify it under the same terms as Perl itself. # package Image::Info::SVG; use strict; use vars qw($VERSION @PREFER_MODULE $USING_MODULE); $VERSION = '2.00'; @PREFER_MODULE = qw(Image::Info::SVG::XMLLibXMLReader Image::Info::SVG::XMLSimple ) if !@PREFER_MODULE; TRY_MODULE: { for my $try_module (@PREFER_MODULE) { if (eval qq{ require $try_module; 1 }) { my $sub = $try_module . '::process_file'; no strict 'refs'; *process_file = \&{$sub}; $USING_MODULE = $try_module; last TRY_MODULE; } } die "Cannot require any of @PREFER_MODULE...\n"; } 1; __END__