2011-08-05 6 views
7

を隠しますこれらのライブラリーの経験はなく、さまざまなサイズの画像にスケーラブルなクリッピングマスクを動的に作成するための夢を見ません。スケーラブルなクリッピングは、私はこのようなパズル形PICES(ない正方形)にvariablesized画像をクリップする必要がある

私はこのタスクを達成するためにサーバサイドプログラミング言語、および好ましくはこの問題へのアプローチのための指針/ヒントを探しています。

答えて

0

パズルピースのサイズでGDを使用してイメージを作成できます。右のクロップを使用してそのイメージの完全なイメージをコピーし、イメージの正しい部分を取得します。

次に、個別の色(#0f0など)で削除したい部分のすべての部分を動的に色付けし、imagecolorallocatealphaを使用してその色を透明にすることができます。それぞれの作品にして、あなたのサーバー側の画像があります。

しかし、私はあなたがどこにあるのかはっきりとした色で各パズルの平和のクリッピングマスクを作成します。これは、接続ごとに2つの画像を作成します(1つは「円」コネクタがはみ出していて、もう1つはこの円のコネクタがはめ込まれています)。こうすることで、これらのマスクをイメージにコピーするだけで素早く素敵なエッジを作成できます。

0

GDはかなり複雑ですが、Image Magickについては、php.netにはPHP版とたくさんのドキュメントがあります。ただし、デフォルトでは、すべてのWebサーバーにこの機能がインストールされているわけではありません。

http://www.php.net/manual/en/book.imagick.php

0

あなたはGDとPHPを使用してそれを行うことを選択した場合、ここでのコードが役立つことがあります。

http://php.amnuts.com/index.php?do=view&id=15&file=class.imagemask.php

を基本的にあなたがGDで何をする必要があるかでマスクを開始することです特定のサイズを使用してから、imagecopyresampled関数を使用して、マスクイメージリソースをより大きなサイズまたはより小さなサイズにコピーします。私が何を意味するのかを確認するには、上のURLにある_getMaskImageメソッドクラスをご覧ください。 GD経由でそれをやっての問題は、私の知る限り、あなたがしたい場合は、一度にそれをピクセルを行う必要があるということです

http://php.amnuts.com/demos/image-mask/

:出力の作業例はで見ることができますさまざまな不透明度を達成するため、大きな画像を処理するには数秒かかることがあります。 ImageMagickでは、これは当てはまりません。

関連する問題