ImageMagickで画像を作成するシリーズです。
今回は基本中の基本、文字に影を付けたり文字を立体的に見せたりするやり方です。
■文字に影をつけます
先に黒系文字を少しずらした位置でぼかします。
あとは普通に文字を書けばOK
[ソースコード]
use strict;
use Encode qw/from_to/;
use Image::Magick;
#白背景キャンバス用意
my $img= Image::Magick->new;
$img->Set(size=>'420x260');
$img->Read("xc:white");
#テキストをUTF-8変換
my $text= '風景';
from_to($text, "shiftjis", "utf-8");
#文字入れ(影用)
$img->Annotate(text=>$text, stroke=>'black', fill=>'gray', font=>'C:\mo.ttf', pointsize=>200, encoding=>'UTF-8', x=>20, y=>230);
$img->Blur("8x8"); #ぼかし
#文字入れ
$img->Annotate(text=>$text, stroke=>'black', fill=>'yellow', font=>'C:\mo.ttf', pointsize=>200, encoding=>'UTF-8', x=>0, y=>220);
#出力
$img->Write("shadow.png");
[出力画像]
■文字を立体的に
少しずつずらしながら何度も同じ文字を書いていって立体的に見せます。
[ソースコード]
use strict;
use Encode qw/from_to/;
use Image::Magick;
#白背景キャンバス用意
my $img= Image::Magick->new;
$img->Set(size=>'420x260');
$img->Read("xc:white");
#テキストをUTF-8変換
my $text= '空間';
from_to($text, "shiftjis", "utf-8");
#文字入れ(立体用)
for (0 .. 9){
$img->Annotate(text=>$text, stroke=>'black', fill=>'gray', font=>'C:\mo.ttf', pointsize=>200, encoding=>'UTF-8', x=>20-2*$_, y=>230-$_);
}
#文字入れ
$img->Annotate(text=>$text, stroke=>'black', fill=>'yellow', font=>'C:\mo.ttf', pointsize=>200, encoding=>'UTF-8', x=>0, y=>220);
#出力
$img->Write("solid.png");
[出力画像]