ruby cairo で svg を生成してみた
http://jp.rubyist.net/magazine/?0019-cairo
るびま 19号の cairo: 2 次元画像描画ライブラリ の記事中の最初のサンプルは
png を出力するものだが、これを svg 出力に変更してみた。
----------
cat hinomaru-svg.rb
# See http://jp.rubyist.net/magazine/?0019-cairorequire "rubygems"
require 'cairo'width = 300
height = 200
radius = height / 3surface = Cairo::SVGSurface.new('hinomaru.svg', width, height)
context = Cairo::Context.new(surface)#
context.set_source_rgb(1, 1, 1)
context.rectangle(0, 0, width, height)
context.fill#
context.set_source_rgb(1, 0, 0)
context.arc(width / 2, height / 2, radius, 0, 2 * Math::PI)
context.fillcontext.show_page
surface.finish
---------
$ cat hinomaru.svg
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="300pt" height="200pt" viewBox="0 0 300 200" version="1.1">
<defs>
<clipPath id="clip0">
<rect width="300" height="200"/>
</clipPath>
</defs>
<g id="surface0" clip-path="url(#clip0)">
<path style="stroke: none; fill-rule: nonzero; fill: rgb(100%,100%,100%); opacity: 1;" d="M 0 0 L 300 0 L 300 200 L 0 200 Z M 0 0 "/>
<path style="stroke: none; fill-rule: nonzero; fill: rgb(100%,0%,0%); opacity: 1;" d="M 216 100 C 216 136.45079 186.45079 166 150 166 C 113.54921 166 84 136.45079 84 100 C 84 63.54921 113.54921 34 150 34 C 186.45079 34 216 63.54921 216 100 "/>
</g>
</svg>
jruby でも実行しようとおもったが、
gem install cairo で、mkmf が無いとかのエラーでインストールできない...
ruby の lib 以下には mkmf.rb はあるが、jruby の lib 以下に mkmf.rb が無い。
最近のコメント