Anatomography Web API サンプルコード - Perl - オートカメラはじめに全身像を前後左右から描画します。 サンプルコード出力先ファイルは適宜変更して下さい。
#!/usr/bin/env perl
use strict;
use LWP::UserAgent;
# リクエスト先URL
my $serverURL = "http://lifesciencedb.jp/bp3d/API/";
# 描画リクエスト用のJSON文字列を作成(正面)
my $jsonf = <<JSON;
{
"Common": {
"Version":"4.0",
"TreeName":"partof"
},
"Camera": {
"CameraMode":"front"
},
"Part":[
{
"PartName":"Human body"
}
]
}
JSON
# 出力(正面)
open OUT, ">autocamera_f.png";
binmode(OUT);
print OUT &getImage($jsonf); # 作成したJSONを利用して描画リクエスト
close OUT;
# 描画リクエスト用のJSON文字列を作成(左面)
my $jsonl = <<JSON;
{
"Common": {
"Version":"4.0",
"TreeName":"partof"
},
"Camera": {
"CameraMode":"left"
},
"Part":[
{
"PartName":"Human body"
}
]
}
JSON
# 出力(左面)
open OUT, ">autocamera_l.png";
binmode(OUT);
print OUT &getImage($jsonl); # 作成したJSONを利用して描画リクエスト
close OUT;
# 描画リクエスト用のJSON文字列を作成(背面)
my $jsonb = <<JSON;
{
"Common": {
"Version":"4.0",
"TreeName":"partof"
},
"Camera": {
"CameraMode":"back"
},
"Part":[
{
"PartName":"Human body"
}
]
}
JSON
# 出力(背面)
open OUT, ">autocamera_b.png";
binmode(OUT);
print OUT &getImage($jsonb); # 作成したJSONを利用して描画リクエスト
close OUT;
# 描画リクエスト用のJSON文字列を作成(右面)
my $jsonr = <<JSON;
{
"Common": {
"Version":"4.0",
"TreeName":"partof"
},
"Camera": {
"CameraMode":"right"
},
"Part":[
{
"PartName":"Human body"
}
]
}
JSON
# 出力(右面)
open OUT, ">autocamera_r.png";
binmode(OUT);
print OUT &getImage($jsonr); # 作成したJSONを利用して描画リクエスト
close OUT;
# 生成したJSONをパラメータとしてimageに対してGETリクエストするサブルーチン
sub getImage () {
my $json = shift;
my $userAgent = LWP::UserAgent->new;
my $request = HTTP::Request->new('GET', $serverURL."image?".$json);
my $response = $userAgent->request($request);
return $response->content;
}
出力画像(正面) ![]() 出力画像(左面) ![]() 出力画像(背面) ![]() 出力画像(右面) ![]() 以下、各ステップに関する説明です。 カメラの設定
# 描画リクエスト用のJSON文字列を作成(正面)
my $jsonf = <<JSON;
{
"Common": {
"Version":"4.0",
"TreeName":"partof"
},
"Camera": {
"CameraMode":"front"
},
"Part":[
{
"PartName":"Human body"
}
]
}
JSON
同様に"left"にすることで、左側(人体にとっての左側ではなくBodyParts3dオブジェクトの左側)から描画した画像を得られます。 同様に"back"にすることで、背面から描画した画像を得られます。 同様に"right"にすることで、右側(人体にとっての右側ではなくBodyParts3dオブジェクトの右側)から描画した画像を得られます。 |