# phpman > perldoc > Image::Info::SVG

## NAME
    [Image::Info::SVG](https://www.chedong.com/phpMan.php/perldoc/Image%3A%3AInfo%3A%3ASVG/markdown) - SVG support for [Image::Info](https://www.chedong.com/phpMan.php/perldoc/Image%3A%3AInfo/markdown)

## SYNOPSIS
     use [Image::Info](https://www.chedong.com/phpMan.php/perldoc/Image%3A%3AInfo/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML%3A%3AReader/markdown) or [XML::Simple](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ASimple/markdown).

## COMPATIBILITY
    Previous versions (until Image-Info-1.28) used [XML::Simple](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ASimple/markdown) as the underlying parser. Since
    Image-Info-1.29 the default parser is [XML::LibXML::Reader](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML%3A%3AReader/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/Image%3A%3AInfo%3A%3ASVG%3A%3APREFERMODULE/markdown) as early as possible:

        use [Image::Info](https://www.chedong.com/phpMan.php/perldoc/Image%3A%3AInfo/markdown);
        @[Image::Info::SVG::PREFER_MODULE](https://www.chedong.com/phpMan.php/perldoc/Image%3A%3AInfo%3A%3ASVG%3A%3APREFERMODULE/markdown) = qw([Image::Info::SVG::XMLSimple](https://www.chedong.com/phpMan.php/perldoc/Image%3A%3AInfo%3A%3ASVG%3A%3AXMLSimple/markdown) [Image::Info::SVG::XMLLibXMLReader](https://www.chedong.com/phpMan.php/perldoc/Image%3A%3AInfo%3A%3ASVG%3A%3AXMLLibXMLReader/markdown));

    The variable $[Image::Info::SVG::USING_MODULE](https://www.chedong.com/phpMan.php/perldoc/Image%3A%3AInfo%3A%3ASVG%3A%3AUSINGMODULE/markdown) can be queried to see which parser is in use (after
    [Image::Info::SVG](https://www.chedong.com/phpMan.php/perldoc/Image%3A%3AInfo%3A%3ASVG/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/Image%3A%3AInfo%3A%3ASVG%3A%3AXMLLibXMLReader/markdown) and [Image::Info::SVG::XMLSimple](https://www.chedong.com/phpMan.php/perldoc/Image%3A%3AInfo%3A%3ASVG%3A%3AXMLSimple/markdown)).
    Controlling XXE processing behavior in [XML::Simple](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ASimple/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ASAX%3A%3APurePerl/markdown) which is uncapable of processing external entities — but
    unfortunately it is also a slow parser.

## SEE ALSO
    [Image::Info](https://www.chedong.com/phpMan.php/perldoc/Image%3A%3AInfo/markdown), [XML::LibXML::Reader](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML%3A%3AReader/markdown), [XML::Simple](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ASimple/markdown), [XML::SAX::PurePerl](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ASAX%3A%3APurePerl/markdown)

## 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](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ASimple/markdown)

    Slaven Rezic <<srezic@cpan.org>> wrote the code using [XML::LibXML::Reader](https://www.chedong.com/phpMan.php/perldoc/XML%3A%3ALibXML%3A%3AReader/markdown)

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

