SVG Profiler
Profiles a Scalable Vector Graphics xml string.
Setup
brew install imagemagick inkscape
gem install svg_profiler
Usage
require "svg_profiler"
profile = SVGProfiler.new(File.read("file.svg"))
profile.dimensions
#=> [900, 600]
profile.width
#=> 900
profile.height
#=> 600
profile.aspect
#=> 1.5
profile.histogram
#=> { "#FF0000" => 0.7, "#FFFFFF" => 0.29, "#000000" => 0.01 }
When calculating the histogram, the SVG is rasterized to a PNG and anti-aliased.
This may have a small impact on the color ratios.
Contribution
If there's a metric you'd like to see implemented, please send a pull request or open an issue.