1000以上のルートを、ユーザごとの地図に投影する方法(6) - 複数のタイル画像を重ね合わせるための方法


あらかじめ、線以外の領域を透過色として作成したルートの画像を
用意しておいて、Image::Magickを使って2つの画像を重ね合わせます。




画像1




画像2




重ね合わせた後


この重ね合わせのコードはこちら。

#!/usr/local/bin/perl -w

use strict;
use Image::Magick;

# 1枚目
my $file = "sample.png";
my $image = Image::Magick->new;
$image->Read($file);

# 2枚目
my $file2 = "sample2.png";
my $image2 = Image::Magick->new;
$image2->Read($file2);

# 画像を合成
$image->Composite(image=>$image2, compose=>'Over', x=>0, y=>0);
$image->Transparent(color=>'#FFFFFF'); # 元画像の透明色(不要かも)

# 合成した画像を画面に出力
print "Content-type: image/png\n\n";
binmode STDOUT;
$image->Write('png:-');

# ファイルに記録する場合はこちら
$image->Write(filename => 'outfile.png');

undef $image;
exit;


これで複数の記録のタイル画像を合わせて、1ユーザの
複数ルートのタイル画像群を作成できるようになります。


次は、ユーザごとに作るスクリプトを紹介して
終りにしたいと思います。