M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2011年1月 5日 22:31

InDesignバグ画像共有サイトHWNDBasedPanelView.comのサムネイル表示を、CGIからSMALL LIGHTに置き換えた

このエントリーをはてなブックマークに追加 mixiチェック

年末にCentOS 5環境に導入しようとして断念した、livedoor EDGEのSMALL LIGHTというapacheモジュール

livedoor ラボ「EDGE」 開発日誌 : 画像サムネイル作成モジュール「SMALL LIGHT」 公開のお知らせ - livedoor Blog(ブログ) [blog.livedoor.jp]

ですが、CentOS 5環境でパッチを当ててインストールで来たというお話が

CentOS5 に SMALL LIGHT をインストール - aki77の日記 [d.hatena.ne.jp]

でありましたので、やってみました。

パッチを提供していただきありがとうございます。

結論から言うと、パッチとして公開されているものが、タブをスペースに置き換えてしまっているために、パッチが充たりません。よって、こっちを使ってください。

Filename: Makefile.in.20110105.diff

--- Makefile.in.orig	2011-01-05 19:57:19.000000000 +0900
+++ Makefile.in	2011-01-05 19:58:46.000000000 +0900
@@ -15,8 +15,7 @@
 CFLAGS=@CFLAGS_IMLIB2@ @CFLAGS_WAND@
 
 all: 
-	$(APXS) -c "$(CFLAGS) $(IMLIB2_INCLUDES) $(IMLIB2_LIBS) $(WAND_INCLUDES) $(WAND_LIBS)" \
-	mod_small_light.c mod_small_light_*.c
+	$(APXS) -c $(CFLAGS) $(IMLIB2_INCLUDES) $(IMLIB2_LIBS) $(WAND_INCLUDES) $(WAND_LIBS) mod_small_light.c mod_small_light_*.c
 
 install: 
 	$(APXS) -ia mod_small_light.la

「Makefile.in.20110105.diff」をダウンロード

上記を、mod_small_light-1.0.0ディレクトリ内でMakefile.in.20110105.diff という名前で保存(ちゃんとタブコードが生きた状態で)します。

あとは、パッチの充て方としては、

$ patch < Makefile.in.20110105.diff

でMakefile.inにパッチが当たりますので(patchコマンドがない場合は、yumでインストールしましょう)、

$ ./configure --with-apxs=/usr/sbin/apxs
$ make
$ su
Password:
# make install
# /sbin/service httpd restart

で、apacheに組み込まれるはずです。

実際に組み込んでみたのがこれ。

http://hwndbasedpanelview.com/

今回入れたmod_small_light、活用していきたいですねー。

間に合わせで使っていたCGIは、こんなの。

Filename: thumbnail.cgi
#!/usr/bin/perl
 
use strict;
use warnings;
use Image::Magick;
use CGI;
use File::Spec;
use FindBin::Real;
 
my $base_dir  = FindBin::Real::Bin();
my $image_dir = 'upload';
my $RESIZE_X = 75;
my $RESIZE_Y = 75;
 
my $q = CGI->new;
(my $filename = $q->param('file') ) =~s/[^\w.]//g;
 
my $im = Image::Magick->new(size => ${RESIZE_X}x${RESIZE_Y} );
$im->Read( File::Spec->catdir($base_dir, $image_dir, $ filename) );
my ( $x, $y ) = $im->Get( 'width', 'height' );
if ( $x > $y * $RESIZE_X / $RESIZE_Y ) {
  $im->Thumbnail( width => $x * $RESIZE_Y / $y, height => $RESIZE_Y );
  $im->Crop( width => $RESIZE_X, height => $RESIZE_Y, x => ( $x * $RESIZE_Y / $y - $RESIZE_X ) / 2, y => 0 );
}
else {
  $im->Thumbnail( width => $RESIZE_X, height => $y * $RESIZE_X / $x );
  $im->Crop( width => $RESIZE_X, height => $RESIZE_Y, x => 0, y => ( $y * $RESIZE_X / $x - $RESIZE_Y ) / 2 );
}
$im->Set(quality=>70);
print $q->header(-type => 'image/jpeg');
binmode STDOUT;           # Win時のおまじない
$im->Write('jpeg:-');      # JPEGで書き出し
undef $im;
 
exit;

Image::Magick を使って大量画像のサムネイル画像を一括自動生成 :: drk7jp [www.drk7.jp}

を参考にしました。uploadディレクトリに画像hoge.pngが入っているとして、http://example.com/thumbnail.cgi?file=hoge.png とかして使います。

投稿 大野 義貴 [DTP] | |

トラックバック(1)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3457

CentOS 5に無理やり入れた、livedoor EDGEのSMALL LIGHT livedoor ラボ「EDGE」 開発日誌 : 画像サムネイル作成モジュール「SMALL LIGHT」 公開のお知らせ - livedoor Blog(ブログ) [blog.livedoor.jp] ですが、モジュール組み込んで1時間するとhttpdが反応しなくなる。 うち20個ぐらいのサービスを1つのサーバでやっているから、さすがに止まると困るので、とりあえずはずしたよ。 livedoorではどういう環境で動か... 続きを読む

コメントする