Image::Magick でミュート画像を作成する方法


Perl モジュール Image::Magick を使って CGI プログラムでアップロードした画像をミュート画像(白っぽい画像)に変換する方法のご紹介です。売り切れ商品などの「無効な画像」や画像にマウスオーバーした時に表示を変更したりする場合の用途です。

ホームページ上で、CSSで画像をミュートしている例はこちらをどうぞ
「すぐ使えるCGI 不動産情報更新ツール」

これはシリーズ記事「Image::Magick の使い方」の 5/8 番目です。 目次を表示

画像をミュート画像に変換

Image::Magickの使い方サンプルコード元画像

元画像

Image::Magickで変換したミュート画像

ミュート画像

Image::Magick サンプルコード:画像をミュート画像に変換

方法としては、「透過性を指定して白で上塗りする」です。
別の色を指定する場合は、名前やWebカラーで指定できます。
透過率を変えるには「opacity」の値を変更します。

my $muted;
eval{
$muted = $img->Clone();
$ret = $muted->Colorize(fill=>’white’, opacity=>’60%’);
};
if ($ret||$@) {
print “ミュート画像への変換に失敗しました。: $ret $@\n”;
exit;
}
$saved{muted} = “$dir/muted$ext”;
eval{$ret = $muted->Write($saved{muted})};
if ($ret||$@){
print “ミュート画像の保存に失敗しました。: $ret $@\n”;
exit;
}