2006年11 月28日  |  Written by matsumoto  |  under PHP Yahoo!ブックマークに登録    はてなブックマーク - PHP5の「__autoload」

PerlのautoloadとPHP5の__autoloadて全然違うんじゃ?と思いまして、
とりあえず@ITのPHP5関連記事などを参考にしつつ
PHP5のそれを試してみました。

Momo.php(読み込まれるクラス)

<?PHP

class Momo {

private $upopo;
public $muhoho = 'むほほ';

public function __construct() {
$this->upopo = 'うぽぽ';
}

public function upopo() {
return $this->upopo;
}
}

?>

Hoge.php(実行する側)

#!/usr/local/bin/php
<?PHP

function __autoload($class) {
if ( file_exists($class.'.php') ) {
include_once($class.'.php');
} else if ( file_exists($class.'.class.php') ) {
include_once($class.'.class.php');
}
}

function do_Task() {
$var = new Momo();
echo $var->upopo();
echo $var->muhoho;
}

do_Task();

?>

実行結果

Hoge.php
うぽぽむほほ

__autoload は動的にクラスファイルを include する用途が
ほとんどなんではないでしょうか。
というか、他の使い方ってあるんだろうか。

Perlのいわゆる「autoload」はPHPでは「__call」になってますね。

DB_DataObjectなどのORマッパー周りやMVCの
BaseClass辺りで便利に使えそうです。

2006年11 月29日  |  Written by matsumoto  |  under Perl Yahoo!ブックマークに登録    はてなブックマーク - ImageMagick@PNG

お天気ページを作るとき、よくある日本地図の上にお天気アイコンが描画されているアレ。

livedoor 天気情報 とかにあるこの画像ですが、今までGIFをプロットして、透明部分(例えば#FFFFFF)とかを定義して、その色だけを抜くような事をしてました。
なので、輪郭にアンチエイリアスがかからないで、ドットもくっきりはっきりで。

↓こんなんとかね。
晴れとか雲とかの周りの白い縁取りがギッチリみたいな。

今更感モリモリなんですが、PhotoShopでドロップシャドウのような半透明処理を行った画像でも(GIFじゃなく)PNGで保存しておけば半透明のまま綺麗にプロットできるという真実。

ImageMagickを使うコードは大体↓のような感じです。ほとんどが重ね合わせの用途ですな。

#!/usr/local/bin/perl

use Image::Magick;

$image = Image::Magick->new;
$image->Read(shift);

$over = Image::Magick->new;
$over->Read(shift);

$image->Composite(image=>$over, compose=>'Over', x=>100, y=>100);
$image->Write('outout.jpg');

ちゃんとする事にします。

私はチーム・マイナス6%です