ついでに。
については、上のエントリに上げた各部修正も同時に適用してください。
/info/textparser_tags.txt
--- .\info\textparser_tags.txt Thu Oct 18 02:04:16 2007 +++ .\info\textparser_tags.txt Sun Mar 2 00:00:00 2008 @@ -232,12 +232,12 @@ img#2#link = 画像, image, 2, $1$2 # 標準アップローダ -image = 画像アルバム, image, 3, ${public}image/$1/$2$3 -image#small = 画像アルバム, image, 3, ${public}image/$1/$2thumbnail/$3.jpg -image#link = 画像アルバム, image, 3, ${public}image/$1/$2$3 +image = 画像アルバム, image, 3, ${image_updir}$1/$2$3 +image#small = 画像アルバム, image, 3, ${image_updir}$1/$2thumbnail/$3 +image#link = 画像アルバム, image, 3, ${image_updir}$1/$2$3 +file = ファイル, ASCII, 4, ${image_updir}$2/$3$4 +file:mp3 = mp3ファイル, ASCII, 4, <a class="mp3player" href="${image_updir}$1/$2$3">#4</a><br><module name="mp3player" file="${image_updir}$1/$2$3" sb="${bc}" lb="${bc}"> -file = ファイル, ASCII, 4, ${public}image/$2/$3$4 -file:mp3 = mp3ファイル, ASCII, 4, <a class="mp3player" href="${public}image/$1/$2$3">#4</a><br><module name="mp3player" file="${public}image/$1/$2$3" sb="${bc}" lb="${bc}"> # example for せりかのアルバム album = 画像アルバム, image, 2, album/hash/$1/$2?thumbnail
Uploader.pm
--- .\lib\Satsuki\Uploader.pm Wed Aug 15 03:06:42 2007 +++ .\lib\Satsuki\Uploader.pm Sun Mar 2 00:00:00 2008 @@ -245,25 +245,35 @@ $self->{tag} = $tag; if (! $is_image) { return 0; } + +#################################################################################### +### Imager 対応に変更。ここから。 +#################################################################################### + #---------------------------------------------------------------------- - # ImageMagic があるとき、サムネイルを作る + # Imager があるとき、サムネイルを作る #---------------------------------------------------------------------- - if (!$self->{make_thumbnail} || !$ROBJ->check_lib("Image::Magick")) { return 0; } - require 'Image/Magick.pm'; + if (!$self->{make_thumbnail} || !$ROBJ->check_lib("Imager")) { return 0; } + + require 'Imager.pm'; + # サムネイルdirの作成 $dir .= $self->{upload_thumbnail_dir}; $ROBJ->mkdir($dir); + # サムネイルファイル - $file_name .= '.jpg'; my $thumbnail_file = $ROBJ->get_filepath( $dir . $file_name ); - my $image = Image::Magick->new; - eval { $image->Read( $save_file_real ) }; - if ($@) { last; } # load 失敗 - $image->Set( quality => ($self->{jpeg_quality} || 60) ); + # Imager オブジェクトを作成し、画像を読み込み。失敗すれば元ファイル削除。 + my $image = Imager->new; + if (!$image -> read( file => $save_file_real )) { + unlink($save_file_real); + die $image->errstr; + } # リサイズ - my ($width, $height) = $image->Get('width', 'height'); + my $width = $image->getwidth(); + my $height = $image->getheight(); my $size = $self->{thumbnail_size}; if ($size < 16) { $size=120; } if ($width<$size && $height<$size) { @@ -275,13 +285,24 @@ $width = int($width*($size/$height)); $height = $size; } - if ($size) { # リサイズ - $image->Resize(width => $width, height => $height, blur => 0.7); + + if ($size) { # リサイズ + $image = $image -> scale( + xpixels => $width, + ypixels => $height, + ); + + # リサイズした場合はファイルに書き出し。 + # リサイズしなかった場合は下で -r チェック時に元ファイルを表示。 + $image->write( file => $thumbnail_file) or die $image->errstr; + if ($ROBJ->{File_mode}) { chmod($ROBJ->{File_mode}, $thumbnail_file); } } - # ファイルに書き出し - $image->Write($thumbnail_file); - if ($ROBJ->{File_mode}) { chmod($ROBJ->{File_mode}, $thumbnail_file); } + +#################################################################################### +### Imager 対応に変更。ここまで。 +#################################################################################### + #---------------------------------------------------------------------- # タグの再生成