| What | tresvg |
| Where | https://github.com/nico-robert/tresvg |
| Description | Tcl wrapper around resvg an SVG rendering library written in Rust . |
| License | MIT License |
Use tresvg if :
package require tresvg
set svg hello.svg
# Initialize log (optional)
tresvg::initLog
# Create options
set opt [tresvg::optionsCreate]
# Parse svg file
set tree [tresvg::parseTreeFromFile $svg $opt]
# Apply transform
set transform [tresvg::transformIdentity]
# Get image size
set size [tresvg::getImageSize $tree]
set width [expr {int([dict get $size width])}]
set height [expr {int([dict get $size height])}]
# Render
set pixmap [tresvg::render $tree $transform $width $height]
# Save to PNG
tresvg::toPNG $pixmap $width $height "hello.png"
# Extended procedures (not a part of resvg C-API)
set xml [tresvg::getXML $tree] ; # Gets simplified XML
set version [tresvg::libVersion]
# Cleanup
tresvg::optionsDestroy $opt
tresvg::treeDestroy $treepackage require Tk ; # Important to load Tk before 'tresvg' package.
package require tresvg
set svg hello.svg
set img [image create photo]
# Others args are optional (see listing commands in README section)
tresvg::toTkImg $svg $img
# Others examples of 'tresvg::toTkImg' command :
tresvg::toTkImg $svg $img -width 100 -height 50
tresvg::toTkImg $svg $img -scale 2 -dpi 300
tresvg::toTkImg $svg $img -mtx {1 0 0 1 0 0}
tresvg::toTkImg $svg $img -width 100 -height 50 -modeScale "fit"
tresvg::toTkImg $svg $img -initLog "true"
$img write "hello.png"
label .l -image $img
pack .l