Image::LibRSVG - Perl extension for librsvg


Image-LibRSVG documentation Contained in the Image-LibRSVG distribution.

Index


Code Index:

NAME

Top

Image::LibRSVG - Perl extension for librsvg

SYNOPSIS

Top

  use Image::LibRSVG;

  ## static Methods
  my $known_formats = Image::LibRSVG->getKnownFormats();
  my $formats       = Image::LibRSVG->getSupportedFormats();
  my $isSupported   = Image::LibRSVG->isFormatSupported("tiff");

  my $rsvg = new Image::LibRSVG();

  $rsvg->convert("my.svg", "my.png" );
  $rsvg->convertAtZoom("my.svg", "my.png", 1.5, 1.5 );
  $rsvg->convertAtMaxSize("my.svg", "my.png", 200, 300 );
  $rsvg->convertAtSize("my.svg", "my.png", 200, 300 );
  $rsvg->convertAtZoomWithMax("my.svg", "my.png", 1.5, 1.5, 200, 300 );

  $formats     = $rsvg->getSupportedFormats();
  $isSupported = $rsvg->isFormatSupported("tiff");

  $rsvg->loadImage( "my.svg" );

  open( SVGFILE, "< my.svg" );
  local( $/ ) ;
  $rsvg->loadImageFromString( <SVGFILE> );
  close SVGFILE;

  $rsvg->saveAs( "my.png" );
  $rsvg->saveAs( "my.jpg", "jpeg" );

  $rsvg->loadImage( "my.svg", 0, { zoom => [ 1.5, 1.5 ] } );
  $rsvg->saveAs( "zoomed.png" );

  my $bitmap = $rsvg->getImageBitmap();

ABSTRACT

Top

  This module provides an Perl-Interface towards the gnome-lib
  librsvg-2.

DESCRIPTION

Top

This module provides an Perl-Interface towards the gnome-lib librsvg-2 which is able to convert SVG(Scaleable Vector Graphics) into bitmapformats like (PNG,JPG,...). To which formats you can convert the svg-files depends on your gdk-pixbuf configuration. Still at least PNG and JPG should be available.

EXPORT

None by default.

Methods

Constructor

* new()

static methods

* ArrayRef getKnownFormats()

returns all formats known to gdk-pixbuf

* ArrayRef getSupportedFormats()

returns all formats you can store your svg image into

* bool isFormatSupported( String format )

returns true if you can store your image in this format else false

member methods

* bool loadImage( String svgfile[, int dpi=0, HashRef args] )

This is function provides a common call mechanism to for all functions below, the args-variable can hold the following values:

Case 1( = loadFromFile ):
    undef

Case 2( = loadFromFile ):
    empty hashref

Case 3( = loadFromFileAtZoom )
    zoom->[0] ... x_zoom
    zoom->[1] ... y_zoom

Case 4( = loadFromFileAtMaxSize ):
    dimension->[0] ... x-size
    dimension->[1] ... y-size

Case 5( = loadFromFileAtSize ):
    dimension->[0] ... x-size
    dimension->[1] ... y-size
    dimension->[2] ... max-size-flag

Case 6( = loadFromFileAtZoomWithMax ):
    zoom->[0] ........ x_zoom
    zoom->[1] ........ y_zoom
    dimension->[0] ... x-size
    dimension->[1] ... y-size

* bool loadImageFromString( String svgfile[, int dpi=0, HashRef args] )

Loads the image from an String containing a plain SVG. For information about args see loadImage.

* bool loadFromFile(String svgfile,[int dpi=0])
* bool loadFromFileAtZoom( String svgfile, double x_zoom, double y_zoom[, int dpi=0] )
* bool loadFromFileAtMaxSize( String svgfile, int width, int height[, int dpi=0] )
* bool loadFromFileAtSize( String svgfile, int width, int height[, int dpi=0] )
* bool loadFromFileAtZoomWithMax( String svgfile, double x_zoom, double y_zoom, int width, int height[, int dpi=0] )
* bool loadFromString(String svgfile,[int dpi=0])
* bool loadFromStringAtZoom( String svgfile, double x_zoom, double y_zoom[, int dpi=0] )
* bool loadFromStringAtMaxSize( String svgfile, int width, int height[, int dpi=0] )
* bool loadFromStringAtSize( String svgfile, int width, int height[, int dpi=0] )
* bool loadFromStringAtZoomWithMax( String svgfile, double x_zoom, double y_zoom, int width, int height[, int dpi=0] )
* bool convert( String svgfile, String bitmapfile[, int dpi=0, String format="png", int quality=100] )
* bool convertAtZoom( String svgfile, String bitmapfile, double x_zoom, double y_zoom[, int dpi=0, String format="png", int quality=100] )
* bool convertAtMaxSize( String svgfile, String bitmapfile, int width, int height[, int dpi=0, String format="png", int quality=100] )
* bool convertAtSize( String svgfile, String bitmapfile, int width, int height[, int dpi=0, String format="png", int quality=100] )
* bool convertAtZoomWithMax( String svgfile, String bitmapfile, double x_zoom, double y_zoom, int width, int height[, int dpi=0, String format="png", int quality=100] )
* bool saveAs( String filename, [ String type, String quality ] )

Saves the image to a file

* SV getBitmap( [ String type, String quality ] )

Saves the image to a scalar which can be passed on to other applications. This only return a useful value if you have compiled it with a gdk-pixbuf greater than or equal to 2.4

SEE ALSO

Top

http://librsvg.sf.net

AUTHOR

Top

Tom Schindl, <tom.schindl@bestsolution.at>

COPYRIGHT AND LICENSE

Top


Image-LibRSVG documentation Contained in the Image-LibRSVG distribution.

package Image::LibRSVG;

# ----------------------------------------------------------------
# Original File Name:  Image/LibRSVG.pm
# Creation Date:       04.02.2004
# Description:         Loadable Perl-Package  
# -----------------------------------------------------------------
#
# -----------------------------------------------------------------
# Copyright (c) 2004 bestsolution.at Systemhaus GmbH
# -----------------------------------------------------------------

use strict;
use warnings;

require Exporter;

our @ISA = qw(Exporter);

# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.

# This allows declaration	use SVGLibRSVG ':all';
# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
# will save memory.
our %EXPORT_TAGS = ( 'all' => [ qw(
	
) ] );

our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );

our @EXPORT = qw(
	
);

our $VERSION = '0.07';

require XSLoader;
XSLoader::load('Image::LibRSVG', $VERSION);

# Preloaded methods go here.

sub loadImage {
    my $self      = shift;
    my $file_path = shift;
    my $dpi       = shift;
    my $args      = shift;
    
    my $rv;
    
    if( ! defined $args || (scalar keys %{ $args }) == 0 ) {
        $rv = $self->loadFromFile( $file_path );
    } elsif ( $args->{zoom} ) {
        $rv = $self->loadFromFileAtZoom( $file_path, $args->{zoom}->[0], $args->{zoom}->[1], $dpi );
    } elsif( $args->{dimesion} ) {
        if( defined $args->{dimension}->[2] && $args->{dimension}->[2] ) {
            $rv = $self->loadFromFileAtMaxSize( $file_path, $args->{dimension}->[0], $args->{dimension}->[1], $dpi );
        } else {
            $rv = $self->loadFromFileAtSize( $file_path, $args->{dimension}->[0], $args->{dimension}->[1], $dpi );
        }
    } else {
        $rv = $self->loadFromFileAtZoomWithMax( $file_path, $args->{zoom}->[0], $args->{zoom}->[1], $args->{dimension}->[0], $args->{dimension}->[1], $dpi );
    }
    
    return $rv;
}

sub loadImageFromString {
    my $self      = shift;
    my $file_path = shift;
    my $dpi       = shift;
    my $args      = shift;
    
    my $rv;
    
    if( ! defined $args || (scalar keys %{ $args }) == 0 ) {
        $rv = $self->loadFromString( $file_path );
    } elsif ( $args->{zoom} ) {
        $rv = $self->loadFromStringAtZoom( $file_path, $args->{zoom}->[0], $args->{zoom}->[1], $dpi );
    } elsif( $args->{dimesion} ) {
        if( defined $args->{dimension}->[2] && $args->{dimension}->[2] ) {
            $rv = $self->loadFromStringAtMaxSize( $file_path, $args->{dimension}->[0], $args->{dimension}->[1], $dpi );
        } else {
            $rv = $self->loadFromStringAtSize( $file_path, $args->{dimension}->[0], $args->{dimension}->[1], $dpi );
        }
    } else {
        $rv = $self->loadFromStringAtZoomWithMax( $file_path, $args->{zoom}->[0], $args->{zoom}->[1], $args->{dimension}->[0], $args->{dimension}->[1], $dpi );
    }
    
    return $rv;
}


1;
__END__

# Below is stub documentation for your module. You'd better edit it!