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":"partof"
	},
	"Window" : {
		"ImageWidth":200,
		"ImageHeight":300,
		"BackgroundColor":"00A4AC"
	},
	"Part":[
		{
			"PartName":"Human body"
		}
	]
}
JSON

# 出力(背景浅葱色)
open OUT, ">windowproperties01.png";
binmode(OUT);
print OUT  &getImage($json);	# 作成したJSONを利用して描画リクエスト
close OUT;

# 描画リクエスト用のJSON文字列を作成(背景透明化)
my $json2 = <<JSON;
{
	"Common" : {
		"Version":"4.0",
		"TreeName":"partof"
	},
	"Window" : {
		"ImageWidth":200,
		"ImageHeight":300,
		"BackgroundColor":"00A4AC",
		"BackgroundOpacity":0
	},
	"Part":[
		{
			"PartName":"Human body"
		}
	]
}
JSON

# 出力(背景透明化)
open OUT, ">windowproperties02.png";
binmode(OUT);
print OUT  &getImage($json2);	# 作成した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;
}


出力画像
背景浅葱色
背景透明化
以下、各ステップに関する説明です。

Window項目の設定(背景浅葱色)

# 描画リクエスト用のJSON文字列を作成(背景浅葱色)
my $json = <<JSON;
{
	"Common" : {
		"Version":"4.0",
		"TreeName":"partof"
	},
	"Window" : {
		"ImageWidth":200,
		"ImageHeight":300,
		"BackgroundColor":"00A4AC"
	},
	"Part":[
		{
			"PartName":"Human body"
		}
	]
}
JSON
Windowに関する設定を記載しています。
ImageWidthで画像横幅を200pxに、ImageHeightと画像高さを300pxにしています。
BackgroundColorで背景色を"00A4AC"(浅葱色)にしています。
Partとしては"Human body"のみを指定しています。

Window項目の設定(背景浅葱色)

# 描画リクエスト用のJSON文字列を作成(背景透明化)
my $json = <<JSON;
{
	"Common" : {
		"Version":"4.0",
		"TreeName":"partof"
	},
	"Window" : {
		"ImageWidth":200,
		"ImageHeight":300,
		"BackgroundColor":"00A4AC",
		"BackgroundOpacity":0
	},
	"Part":[
		{
			"PartName":"Human body"
		}
	]
}
JSON
Windowに関する設定を記載しています。
ImageWidthで画像横幅を200pxに、ImageHeightと画像高さを300pxにしています。
BackgroundColorで背景色を"00A4AC"(浅葱色)にし、背景の不透明度を0(透明)にしています。
Partとしては"Human body"のみを指定しています。