GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Image::Info::SVG(3) User Contributed Perl Documentation Image::Info::SVG(3)

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:
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.

        $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).

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.

Image::Info, XML::LibXML::Reader, XML::Simple, XML::SAX::PurePerl

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.

2017-03-19 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.