キモブロ

Please spy check please, Fucking retard

MacbookのperlでImager::File::PNGを使うための手順

以下perlbrewでperlをインストール済みであるという前提でメモ

追記(2013/09/30): YappoLogs: homebrew libpng and Imager::File::PNG with Carton
なんか最近はこの俺の記事の方法だと駄目っぽいみたいです。というわけで、リンク先の記事を参考にどうぞ。最新のMacだともはやX11が付属しなくなってるみたいで、俺の記事はMacにはじめから入ってるX11を使うというものなので無理みたいな感じですね。

libpngをインストールする

まずHomebrewで入れようとしたんだけど失敗する。

$ brew install libpng
Error: No available formula for libpng
Apple distributes libpng with OS X, you can find it in /usr/X11/lib.
However not all build scripts look here, so you may need to call ENV.x11
in your formula's install function.

上の説明読むとわかるんですが、なんかMacはすでに/usr/X11/libに入ってるらしい。
というわけでこの記事ではMacBookにもともと入ってるlibpngを使うことにします

Imager::File::PNGモジュールをインストールする

$ cpanm Imager::File::PNG

png.hが見つからないという感じのエラーが出るので、Makefile.PLを手動実行します
/usr/X11/libという特殊なパスなため発見できてないわけですね。cpanではビルド途中のものは$HOME/.cpanm/latest-buildにあるのでそれを使います。

$ cd ~/.cpanm/latest-build/Imager-File-PNG-0.84
$ perl ./Makefile.PL --libpath=/usr/X11/lib
$ make
$ make install

テストコード

use Imager;
my $img = Imager->new;
$img->read(file => './in.jpg') or die $img->errstr;

$img = $img->scale(
  xpixels => 160,
  ypixels => 160
);

$img->write(file => './out.png') or die $img->errstr;