2008年3月18日火曜日

turbogearsでimageを返す2

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
なんかimage moduleで切り貼りをがんばっていたのでsvgかなんかをつかってもっとデザインに幅を持たせられないものかと思ってsvgのrendererを探したらすぐにpycairoなるものを発見。epelかなにかに入っていてウマー。ドキュメントが少ないらしいので、Cのドキュメントをみてがんばるですよ。なにもないのにくらべたら天国です。

ファイルからsvgを読み込んでrenderするのはどうしたらよいのかな?うろうろ・・・。それからrenderした結果をバイナリで取り出したい。IOStringかなんかに書かせてそれをreadすればよさそうだな。

長いものに巻かれろなスタンスならcairoはよいチョイスでしょう。GIMPとかの統合の話で土台に使うらしい。

winな人はこちらかな?。「cairo.svgモジュールは上記pycairoバイナリには含まれていないようです。」とあるがwinにははlibrsvgがないからなのかな?

手元で試すとcairo.SVGSurfaceとかならあるが。contextにドローする方法は表現に依存しないのでは??まだ試していないからなんともいえないが。

さすがIBMいつも思うがかれらは太っ腹だ。


cairo での設計上の重要な決定は、可能な限り同一の出力をサポートするということです。一貫した出力は、GUI ツールキットのプログラミングやクロスプラットフォームのアプリケーション開発に格別に適したものとなります。高解像度で画面を出力できること、そして画面のコンテンツを同じ描画ライブラリーで描画できるということは明らかな利点です。


ん~~これならpythonのユーザがもと増えていいはずだが。


なかでも特筆するに値するのは Python バインディングです。このバインディングによって、迅速なプロトタイピングが可能になるだけでなく、cairo を初めて使う人でも cairo の描画 API を容易に理解できるようになっています。


?!ひょっとしてわかりやすすぎるからないとか・・・。

http://cairographics.org/cookbook/roundedrectangles/
はpythonでかかれてるよ・・・。
rsvgを使うほうが普通らしい。

svt to pycairoが今回おいらがやりたいことに関連してそう。svgのcmdをcairoのコマンドにマップしてexecで書いてる。
サンプルだからif文つかってるけど辞書を用意してTemplateで置換すればよさげ。タプルをdictにマップしておけば不定数の引数も処理できるはず。

pyrsvgとpycairoいまいちわからないのだが、rsvgで読み込んだファイルをcairoのdrawing contextを使って描画しているようによめる?!rsvgがcairoが実際に描画するための下回りかな?

あとsvgの書けるドローソフトを拾ってきてリソースをつくらなきゃ。

0 件のコメント: