M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2008年2月 3日 14:05

GD::Graphでグラフ描いたらY軸の和文フォント回転しなくて困った

このエントリーをはてなブックマークに追加 mixiチェック

Perlでグラフ作れっていうミッション。最終的には、ユーザがフォームから入力した数値をプロットするCGIということになりそうだね。

つうわけで、GD::Graph を使ってみることにしました。

実行環境は、うちの MacMiniのFedora Core 4ですー

あらかじめ、 rootになって、yum install perl-GDGraph を実行しておきます。

Filename: Graph.cgi

#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use GD::Graph::lines;
use utf8;
 
my @x軸ラベル = qw( 0.15 0.3  0.6  1.2  2.5    5  10 );
my @上限      = qw(   10  35   65   90   98          );
my @下限      = qw(    3  10   25   50   80   90 100 );
my @データ    = qw(  3.1 8.3 17.6 35.3 63.8 97.5 100 );
my @data      = ( \@x軸ラベル, \@データ, \@下限, \@上限, );
 
my $graph = GD::Graph::lines->new( 400, 200 );
 
GD::Text->font_path('/usr/share/fonts/japanese/TrueType');
$graph->set_title_font  ('kochi-gothic-subst', 9);
$graph->set_x_label_font('kochi-gothic-subst', 9);
$graph->set_y_label_font('kochi-gothic-subst', 9);
 
$graph->set( title         => "粒度曲線",
             x_label       => "ふるい目の寸法 (mm)",
             y_label       => "ふるい通過百分率 (%)",
             y_max_value   => 100,
             y_tick_number => 10,
             long_ticks    => 1,
);
 
my $image = $graph->plot( \@data ) or die;
 
 
my $q = CGI->new();
print $q->header(-type => 'image/png', );
print $image->png();
 
exit;
 
__END__

プログラム内に平気に日本語の変数名使っている件については気にすんなよー

実行結果:

<img src="http://example.com/cgi-bin/graph.cgi" /> という記述で、

Graph

みたいになるけれども、Y軸の和文フォント回転しとらん。ありえん。

GDよくわからんし、このままImageMagickにぶっ込んで上から回転した文字列を上書きすることになるのかなー

ちなみに、こういうWebでの自動生成用途でモリサワフォントを使えるライセンスってないんですわ。必ずユーザを特定できる条件でないといかんらしく。オープン利用でお試し版やるっていうサービスがグレーになっちゃう。印刷屋さんが高解像度用フォントを持っていればWeb用ライセンスがユーザ無制限ライセンスになって、高解像度用フォントなんて(バカらしくて)買うことができないIT屋さんとの差別化が図れるぐらいのインセンティブがあってもなーと思うけど無理ぽげですよねー

投稿 大野 義貴 [Perl] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2364

コメント(2)

フォントをmsgothic.ttcにすると回転します

meiryo.ttcの間違いでした

コメントする