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"で、削除フラグを有効にしています。 |