Image::Info::SVG (3)
Leading comments
Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) Standard preamble: ========================================================================
NAME
Image::Info::SVG - SVG support for Image::InfoSYNOPSIS
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);
DESCRIPTION
This modules supplies the standard key names except for BitsPerSample, Compression, Gamma, Interlace, LastModificationTime, as well as:- ImageDescription
- The image description, corresponds to <desc>.
- SVG_Image
-
A scalar or reference to an array of scalars containing the URI's of embedded images (JPGorPNG) that are embedded in the image.
- SVG_StandAlone
- Whether or not the image is standalone.
- SVG_Title
- The image title, corresponds to <title>
- SVG_Version
-
The URIof theDTDthe image conforms to.
METHODS
process_file()
$info->process_file($source, $options);
Processes one file and sets the found info fields in the $info object.
FILES
This module requires either XML::LibXML::Reader or XML::Simple.COMPATIBILITY
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 ofXML
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).
Since 1.38_50 processing of
XML
external entities (XXE
) is not done
anymore for security reasons in both backends
(Image::Info::SVG::XMLLibXMLReader and
Image::Info::SVG::XMLSimple). Controlling XXE
processing behavior
in XML::Simple is not really possible (see
<rt.cpan.org/Ticket/Display.html?id=83794>), so as a
workaround the underlying SAX
parser is fixed to XML::SAX::PurePerl
which is uncapable of processing external entities — but
unfortunately it is also a slow parser.
SEE ALSO
Image::Info, XML::LibXML::Reader, XML::Simple, XML::SAX::PurePerlNOTES
For more information aboutSVG
see <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
AUTHOR
Jerrad Pierce <belg4mit@mit.edu>/<webmaster@pthbb.org> wrote the original code based on XML::SimpleSlaven 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.