[Clipart] [Fwd: [Inkscape-devel] Fwd: [cairo] redesigning the arguments for svg2png]

Jon Phillips jon at rejon.org
Wed Jun 29 19:24:47 PDT 2005

-------- Forwarded Message --------
> From: mental at rydia.net
> To: bulia byak <buliabyak at gmail.com>
> Cc: inkscape-devel at lists.sf.net
> Subject: [Inkscape-devel] Fwd: [cairo] redesigning the arguments for
> svg2png
> Date: Wed, 29 Jun 2005 21:59:21 -0400
> Just FYI in case you had anything to add..
> ----- Forwarded message from Jason Dorje Short <jdorje at users.sf.net>
> -----
>     Date: Wed, 29 Jun 2005 21:37:27 -0400
>     From: Jason Dorje Short <jdorje at users.sf.net>
> Reply-To: Jason Dorje Short <jdorje at users.sf.net>
>  Subject: [cairo] redesigning the arguments for svg2png
>       To: "Cairo Mail List (E-mail)" <cairo at cairographics.org>
> Current arguments for svg2png:
>   -w $WIDTH
>   -h $HEIGHT
>   -s $SCALE
>   -x, --flipx
>   -y, --flipy
>   input.svg and output.png are taken directly as parameters
> This is all explained in `man svg2png`.  The problem is it's
> incomplete.
> ----------
> For instance if you give -w and -h svg2png makes an image with the
> given
> $WIDTH and $HEIGHT and puts the SVG file inside it with preserved
> aspect
> ratio.  Thus there is no distortion and there is padding.
> One thing I need to do is to change the aspect ratio.  I want to
> give a
> width and height and have the SVG "stretch" to take up this whole
> area.
>  Thus the xscale and yscale are different.  Thus there is distortion
> and
> there's no padding.  This is what rsvg, sodipodi, and inkscape
> command-line renderers do.
> A third thing one would want to do is preserve the aspect ratio but
> without any padding.  Thus the $WIDTH and $HEIGHT provide the max
> dimensions, just like svg2png does now, but without any padding. 
> Thus
> there is no distortion and there is no padding.  IIRC this is what
> the
> librsvg rsvg_pixbuf_from_file_at_max_size function does (which I've
> found very useful in the past).
> Yet another thing you might want to do is specify the xscale and
> yscale
> independently.  I can't recall ever needing to do this, but rsvg
> allows it.
> Finally, one might wish to specify things in DPI.  If the SVG image
> is
> given in real-world dimensions (e.g., inches) giving a DPI to render
> at
> will allow you to make the PNG image show up at the right size when
> rendered at that DPI (to a monitor or a printer).  Aspect ratio is
> preserved; this is just a (possibly) convenient way of setting the
> --scale.  Inkscape provides a -d $DPI parameter allowing this.  Note
> that this will not work with all SVG files.
> ----------
> Of course svg2png should be able to do all of the above tasks.  It
> would
> also be nice to keep command-line compatibility with rsvg, inkscape,
> sodipodi.  The trick is to do all this without having confusingly
> many
> options or giving unexpected default behavior.
> Thus I suggest:
>   --width=$WIDTH (-w)
>   --height=$HEIGHT (-h)
>   --xscale=$X_SCALE (-x)
>   --yscale=$Y_SCALE (-y)
>   --flipx (-X maybe?)
>   --flipy (-Y maybe?)
>   --scale=$SCALE (-s)
>   --dpi=$DPI (-d)
>   --pad [1]
>   --stretch
> You may pad or stretch or neither but not both.  The default should
> be
> to do neither (same as rsvg, inkscape, and sodipodi), this changes
> the
> current behavior which is to pad.  (--pad and --stretch were
> suggested
> by Carl.)
> Supporting -d will require new functions to libsvg and libsvg-cairo
> to
> set the DPI.
> -x and -y are changed from flipx and flipy to xscale and yscale. 
> This
> matches the rsvg args (they call it --x-zoom, --y-zoom).
> In case of conflicting options (--width and --xscale both given) the
> one
> higher up in the list is given priority (this is obviously arbitrary
> and
> can be tweaked a bit).  Care should be taken to give a sensible
> output
> no matter what combination of args are given (rsvg is pretty bad at
> this).
> ----------
> For full compatibility with inkscape and rsvg it would be necessary
> to
> add more "long argument" aliases.  This would be convenient but
> would
> also add clutter to the interface.
> Inkscape also has some additional parameters that might be useful,
> either for new features or compatibility.  See -a, -f, -e, -i, -j,
> -t,
> -b, -y from `man inkscape`.  I don't understand all of these but
> some of
> them are probably desirable.
> In a related note xsvg should probably support a similar set of
> options.
>  Seems there could be a lot of overlap here.
> -jason
> _______________________________________________
> cairo mailing list
> cairo at cairographics.org
> http://lists.freedesktop.org/mailman/listinfo/cairo
> ----- End forwarded message -----
> -------------------------------------------------------
> SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
> from IBM. Find simple to follow Roadmaps, straightforward articles,
> informative Webcasts and more! Get everything you need to get up to
> speed, fast. http://ads.osdn.com/?ad_idt77&alloc_id492&op=click
> _______________________________________________
> Inkscape-devel mailing list
> Inkscape-devel at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Jon Phillips

USA PH 510.499.0894
jon at rejon.org

Inkscape (http://inkscape.org)
Open Clip Art Library (www.openclipart.org)
CVS Book (http://cvsbook.ucsd.edu)
Scale Journal (http://scale.ucsd.edu)

More information about the clipart mailing list