Provided by: libimage-info-perl_1.43-1_all bug

NAME

       Image::Info::SVG - SVG support for Image::Info

SYNOPSIS

        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
           (JPG or PNG) 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 URI of the DTD the 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 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).

       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 <https://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::PurePerl

NOTES

       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

AUTHOR

       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.