- 2006-11-03 (金) 18:02
- Image_Graph | PEAR | SVG
PEAR::Image_GraphライブラリでSVG形式のグラフを出力できないものかとライブラリのソースを調べていたら、デフォルトで対応していることがわかりました。
それで、PEARのImage_Graphのページを確認してみたら、案の定。 ちゃんとリファレンスを読むべし!ってことですね。
以下、覚え書き。
PEAR::Image_Graphライブラリが対応しているフォーマットは
- GD (PNG, JPEG, GIF, WBMP)
- PDF (using PDFLib)
- Scalable Vector Graphics (SVG)
(※PDFLibはたしか有料。)
ちょっとテスト
ためしに、PHP:PEAR::Image_Graph 習作のソースで、SVGを出力させてみる。 factoryメソッドで、以下のように設定。
修正前
PNG(デフォルト)でグラフを出力
$Graph =& Image_Graph::factory('graph', array($w, $h));
修正後
SVGでグラフを出力
$Graph =& Image_Graph::factory('graph', array(array('width'=>$w, 'height'=>$h, 'canvas' => 'svg')) );
結果
実際に出力されたSVGファイルはこちら(.svg)。
↑SVGファイルの確認には、Adobe SVG Viewer などが必要。(最近のFirefoxやOperaにはデフォルトでSVGに対応しているようです)
吐き出されたSVGファイルのソースコードはこちら(.txt)。
日本語を出力させるには?
いろいろやってみたけれど、デフォルトのままでは無理でした。
XMLを出力させてるのはPEARライブラリの
Image/Canvas/SVG.php
そこのXMLのencodingが
xml version="1.0" encoding="iso-8859-1"
になっていたので、utf-8に変えてみたりだとかしてみたのだけれど。んー。やっぱりこれだけじゃダメなのね。
そもそもSVGってどうやってテキスト(フォント)を制御してるんだろう?勉強しなくちゃ、だ。
- Newer: PHP:ini_set関数でinclude_pathをセットする
- Older: PHP:読み込まれたファイルのファイル名一覧を取得
Comments:2
- 通りすがり 06-12-08 (金) 11:38
-
いつもは、見るだけですが今回この情報が大変参考になりましたので、日本語表示の件でコメントさせていただきます。
すでに解決されていたらすみません。Image/Canvas/SVG.php にある2箇所の iso-8859-1 を UTF-8 にして
mb_language(”Japanese”);
mb_internal_encoding(”utf-8″);
mb_http_output(”utf-8″);までやったら日本語表示うまくいきました。
- マルタ 06-12-11 (月) 14:02
-
>> 通りすがりさん
コメントをありがとうございます。
教えていただいた通りやってみたら、バッチリ日本語表示できました。また時間のあるときに、このSVGまわりの試行錯誤を
記事にできたらいいなと思います。有益な情報をありがとうございました。
Trackbacks:0
- Trackback URL for this entry
- http://side-b.sto.co.jp/weblog/archives/162/trackback
- Listed below are links to weblogs that reference
- PEAR::Image_GraphライブラリでSVG from Side-B