PHPで切り抜き画像を作ってみる
まとめサイトのサイドバナーによくamazonのフィギュアを載ってるのをよく見る。amazon画像編集ツールamacco -あまっこ-も元々CDのジャケット用に作ったのだけど実際は殆どフィギュアばかりだ。
大抵フィギュアの背景は白で味気ない「PhotoShopとかで魔法の杖(マジックワンド)を使ったら簡単に切り抜き画像作れそうだな」と思ってPHPのGDで出来ないか調べてみた。
GDにはそんな機能は無かったがアルゴリズムの紹介にシードフィルというアルゴリズムを使って塗りつぶす方法がC言語で書かれていたのでPHPでもやってみた。
PHP 切り抜き
画像上の切り抜きたい場所を適当にポチポチ数カ所クリックして画像生成を押すと切り抜き画像が出来る。
白(左上の端の色)と画像の各ポイントの色の差を連想配列に入れておいて、画像上でクリックされた各ポイントからシードフィルアルゴリズムで塗りつぶしを繰り返し、(実際塗りつぶす訳じゃなく塗りつぶしのデータはマスク用の連想配列に入れる)処理が終わったら、マスクデータにぼかしをかけたりして、マスクを適用させて画像を生成するという感じ。
今回はテストなので普通に多次元配列を使ったが色情報なのでサイズ固定のSplFixedArrayを使った方が速そうな気もするが・・・。
あまりキレイでは無いので役に立たないかもしれないけどPHPで簡単切り抜き画像が作れることはできるという事が分かった。
Tags: amazon
参考にさせて頂きました。
PHPでも切り抜きが出来るなんて驚きです!!