ImageMagickとperlを使った画像変換

ImageMagickを使った画像変換perlモジュールの一部です。
画像変換の箇所は含まれています。
.
# 「**」は環境変数に指定した「PERL5LIB」に続くパス
package **::ImageOperation::BmpToJpg;

use Image::Magick;
use **::ImageOperation::PrintResult;

sub new
{
    my $class = shift;
    return $class;
}

sub Operation
{
    my($self, @DATA) = @_;
    
    # 画面出力オブジェクトを作成
    my $obj = new **::ImageOperation::PrintResult;
    
    foreach my $source (@DATA) {
        chomp($source);
        if ($source ne 'list.txt') {
            if ($source =~ ".jpg" or $source =~ ".JPG") {
                $obj->Operation($source, "skip");
            } else {
                # ImageMagickのオブジェクトを作成
                my $image = Image::Magick->new;
  
                # 画像ファイルの読み込み
                $image->Read($source);
  
                # 出力ファイルのファイル名の作成
                my $jpgname = $source;
                if ($jpgname =~ ".bmp") {
                    $jpgname =~ s/\.bmp$/\.jpg/;
                } elsif ($jpgname =~ ".BMP") {
                    $jpgname =~ s/\.BMP$/\.jpg/;
                } elsif ($jpgname =~ ".png") {
                    $jpgname =~ s/\.png$/\.jpg/;
                } elsif ($jpgname =~ ".PNG") {
                    $jpgname =~ s/\.PNG$/\.jpg/;
                }

                # 変換品質を指定
                $image->Set(quality => 100);
  
                # 画像変換
                $image->Write($jpgname);
  
                # ImageMagickオブジェクトの廃棄
                undef $image;
                
                # 結果を画面に出力
                $obj->Operation($source, $jpgname);
            }
        }
    }
}

1;
.
Windowsで実行しています。
環境変数に「PERL5LIB」を作成する必要があります。

コメント