Perl モジュール Image::Magick を使って CGI プログラムでアップロードした画像をグレースケールに変換する方法のご紹介です。
これはシリーズ記事「Image::Magick の使い方」の 3/8 番目です。 目次を表示
画像をグレースケールに変換
Image::Magick サンプルコード:画像をグレースケールに変換
my $grayscale;
eval{
$grayscale = $img->Clone();
$ret = $grayscale->Quantize(colorspace => ‘gray’);
};
if ($ret||$@) {
print “グレースケールへの変換に失敗しました。: $ret $@\n”;
exit;
}
$saved{grayscale} = “$dir/grayscale$ext”;
eval{$ret = $grayscale->Write($saved{grayscale})};
if ($ret||$@){
print “グレースケール画像の保存に失敗しました。: $ret $@\n”;
exit;
}
eval{
$grayscale = $img->Clone();
$ret = $grayscale->Quantize(colorspace => ‘gray’);
};
if ($ret||$@) {
print “グレースケールへの変換に失敗しました。: $ret $@\n”;
exit;
}
$saved{grayscale} = “$dir/grayscale$ext”;
eval{$ret = $grayscale->Write($saved{grayscale})};
if ($ret||$@){
print “グレースケール画像の保存に失敗しました。: $ret $@\n”;
exit;
}
画像をグレースケールに変換する時は Quantize メソッドで colorspace を変換します。
一旦変換すると色が全て落ちますので、その後再度カラーで処理したい場合は、もう一度逆に「->Quantize(colorspace => ‘RGB’)」で戻しておくと、白黒画像の上に色付きの文字を書く等の処理ができます。