PHPプロ!TIPS+

PEAR::Image_Puzzleを使ってみよう

今回はPEARのライブラリ郡の中でも、需要があるのか無いのか分からないマイナーなライブラリを紹介してみたいと思います。

今回紹介するのはPEAR::Image_Puzzleです。
これは指定した画像を分割し、ジグソーパズルのピースのような形をした画像を作成してくれるライブラリです。

それぞれピースのつなぎ目部分も、市販されているジグソーパズルのような形に成型してくれる、なかなか凝ったライブラリなのですが、これはいったい誰が使うんでしょうか。

まずはインストールです。

PEAR::Image_PuzzleはPEAR::Image_Color2に依存しているため、まずはこちらからインストールします。

PEAR::Image_Color2はまだアルファ版なので、パッケージ名の後ろに「-alpha」を付け、以下のコマンドでインストールを行います。

pear install Image_Color2-alpha

このインストールが完了した後、PEAR::Image_Puzzleのインストールを行います。
こちらはベータ版なので以下のコマンドを実行します。

pear install Image_Puzzle-beta

これでインストールは完了です。

それでは早速使ってみましょう。

まずはパズルのピースに分割したい画像を一つ用意します。
ここではその画像を original.gif としておきます。

この画像からピースの画像を作成するには以下のようなスクリプトを使用します。

<?php
include_once("Image/Puzzle.php");

$options array(
  
'cols' => 4,
  
'rows' => 4,
  
'edge' => 'default'
);

$puzzle = new Image_Puzzle($options);
$puzzle->createFromFile('original.gif');
$puzzle->saveAll('piece_[row]_[col].gif');

?>

あとはこのスクリプトをPHPコマンドで実行するだけです。。
これで同一ディレクトリ上に "original.gif" を4×4に分割したピース画像が生成されます。

それぞれの画像ファイル名は、"piece_[row]_[col].gif" の[row]と[col]が列と行の数値に置き換わった名前になります。

'edge'はピースとピースのつなぎ目の形を指定するオプションで、arc, halfcircle, line, sinusなど、いくつか種類が用意されていますが、一般的なピースの形にしたいのであれば「default」のままで構いません。

実際に作成した画像ファイルは以下のようになります。

おおもとの画像

おおもとの画像

ピース画像(まとめました)

ピース画像(まとめました)

※実際に生成された全ピース画像(.zip)

パズルゲームが作りたくて作りたくて仕方ない!という方はぜひこれを利用してみてください。

バックナンバーについて

TIPS-MLは、毎週金曜日に更新され、新しい記事が掲載されます。

Tipsꗗy[W 

Pick Up Q&A

Q
PHPのHTML埋め込み記述について
 このエントリーをはてなブックマークに追加 
A
$_POST["data"] == "男" ? $val = "checked" : $val = "" ; の意味は以下と同じです。 if($_POST["data"] == "男"){ $val = "checked; } e...

>>続きを読む

kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)