Tagged ‘amazon’

PHPで切り抜き画像を作ってみる

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

裏技でamazon画像編集〝amacco〟

amacco_s
半年以上前からちょっとずつ進めてたamazon画像編集ツールamacco(あまっこ)がようやく大体の形になったので公開します。
amazonの画像には裏技があって、そのアドレスをちょこっと書き換えるだけでトリミングやリサイズが出来ます。この機能を使ってあたかも編集したかの様な画像を生成するWEBツールです。

「自由な切り抜き」の方は上で書いた半年前に思いついた方で画像を回転し、トリミングし、リサイズするツールになります。
回転させる画面はFlashを使っています。元々は青銅製の古びた道具のデザインを考えていたんだけど結局、思うような画にならなかったので、シンプルなのにしました。
Flashは勉強も兼ねてActionScript3.0で作ったんだけど、ActionScript2.0とは全く別物になってるC言語よりになった感じだ。手続きが増えたのでソースは増えるがクラスをガンガン作っていくスタイルなので、長い目で見ると流用しやすく作業分担しやすくなり大規模なコンテンツを作りやすくなったが、初心者にはとっつきにくく私の様な小規模なFlashを作る人間からすると面倒だ。
クリッピング(トリミング)の画面ではjQueryのプラグイン「Jcrop」を使った。リサイズは縮小はamazonがやってくれるけど拡大はやってくれない様なのでhtml上で引き延ばす事にした。

「顔認識切り抜き」は顔ラボというサイトを最近見つけたので制作する事にした。
顔ラボのAPIは画像の顔を認識して顔とおぼしき位置を返してくれる。その情報を使ってクリッピングしてリサイズしている。
マンガの表紙でも顔と認識する事もあれば写真なのに認識しない場合もある。

これらのツールの制作が遅々として進まなかったのは使う人が少なそうだったからだ。がんばって作っても使う人が居なければ意味が無いのでテンションが上がらない。
もし、顔ラボを見つけて無かったらお蔵入りしてたかもしれない。
もう少し、実用的なのも1年以上前から考えていたがamazonの裏技を使う訳では無いので別立てにしようかと思う。

Amazonのコーディング

昨日、My Releaseの情報を更新しようと思ったらAmazonのホームページの仕様が変わったみたい、ソースを見てみると以前の様にテーブルでレイアウトされたものとスタイルシートでレイアウトされたものがあり(見た目は同じ)、毎回新しいレイアウトなのでは無く、ときどき新しいレイアウトになるみたい。
おそらく、分散化させてるサーバーの一部が変更になったのだろう。
結局、古いのも残して新旧のソースを判断して情報を抽出する様に修正した。