Anatomography Web API サンプルコード - Perl - パーツの色・不透明度・ズーム・削除指定はじめに全身像および複数のパーツの色・不透明度・ズーム・削除を指定して静止画を描画します。 サンプルコード出力先ファイルは適宜変更して下さい。
#!/usr/bin/env perl
use strict;
use LWP::UserAgent;
# リクエスト先URL
my $serverURL = "http://lifesciencedb.jp/bp3d/API/";
# 描画リクエスト用のJSON文字列を作成
my $json = <<JSON;
{
"Common":{
"Version":"4.0",
"TreeName":"isa"
},
"Part":[
{
"PartName":"anatomical entity",
"PartOpacity":0.1,
"UseForBoundingBoxFlag":false
},
{
"PartName":"region of wall of heart",
"PartColor":"FF0000",
"UseForBoundingBoxFlag":true
},
{
"PartName":"stomach",
"PartOpacity":0.5,
"PartColor":"FFFF00",
"UseForBoundingBoxFlag":true
},
{
"PartName":"kidney",
"PartOpacity":0.5,
"PartColor":"00FFFF",
"UseForBoundingBoxFlag":true
},
{
"PartName":"spleen",
"PartOpacity":0.5,
"PartColor":"0000FF",
"UseForBoundingBoxFlag":true
},
{
"PartName":"pancreas",
"PartOpacity":0.5,
"PartColor":"00FF00",
"UseForBoundingBoxFlag":true
},
{
"PartName":"rib",
"PartDeleteFlag":true
}
]
}
JSON
# 出力
open OUT, ">partsproperties.png";
binmode(OUT);
print OUT &getImage($json); # 作成した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 $json = <<JSON;
{
"Part":[
{
"PartName":"anatomical entity",
"PartOpacity":0.1,
"UseForBoundingBoxFlag":false
},
{
"PartName":"region of wall of heart",
"PartColor":"FF0000",
"UseForBoundingBoxFlag":true
},
{
"PartName":"stomach",
"PartOpacity":0.5,
"PartColor":"FFFF00",
"UseForBoundingBoxFlag":true
},
{
"PartName":"kidney",
"PartOpacity":0.5,
"PartColor":"00FFFF",
"UseForBoundingBoxFlag":true
},
{
"PartName":"spleen",
"PartOpacity":0.5,
"PartColor":"0000FF",
"UseForBoundingBoxFlag":true
},
{
"PartName":"pancreas",
"PartOpacity":0.5,
"PartColor":"00FF00",
"UseForBoundingBoxFlag":true
},
{
"PartName":"rib",
"PartDeleteFlag":true
}
]
}
JSON
1つ目が"anatomical entity"で、Opacity(不透明度)を0.1、Bounding Boxに利用しない設定としています。 2つ目が"region of wall of heart"で、描画色を"FF0000"(赤)、Bounding Boxに利用する設定としています。 3つ目が"stomach"で、描画色を"FFFF00"(黄)、Opacity(不透明度)を0.5、Bounding Boxに利用する設定としています。 4つ目が"kidney"で、描画色を"00FFFF"(水色)、Opacity(不透明度)を0.5、Bounding Boxに利用する設定としています。 5つ目が"spleen"で、描画色を"0000FF"(青)、Opacity(不透明度)を0.5、Bounding Boxに利用する設定としています。 6つ目が"pancreas"で、描画色を"00FF00"(緑)、Opacity(不透明度)を0.5、Bounding Boxに利用する設定としています。 7つ目が"rib"で、削除フラグを有効にしています。 |