2011-06-20 6 views
0

divコンテナのいくつかの位置でユーザーがドラッグアンドドロップした複数の画像から単一の画像を生成する方法はありますか?phpとjqueryでイメージを生成するには?

html5キャンバスを使用してこの処理を試みましたが、html5キャンバスはキャンバス内の画像のソースを変更するためにjqueryを使用して統合されていません。

答えて

3

画像のURLと座標をPHPスクリプトに投稿し、次にPHP image manipulation functionsを使用してさまざまな画像を(サーバー側で)1つにまとめることができます。

EDIT

私はあなたのタスクを達成することができます方法についていくつかの短いガイドラインを与えるでしょう。

あなたは、配置された画像の画像URL、x座標、およびy座標を隠した<input>の3つの配列でフォームを作成します。それらは、ユーザーdropsとしてjqueryを介してコンテナに挿入されます。

組立スクリプトは同じように動作します:

  1. が投稿されたURL(例えば$_POST['url'][$i])さんは$imcont
  2. 読む順次、それを呼びましょう、(imagecreatetruecolor()付き)(ビッグ)空の容器の画像を作成します。対応する画像を開き、例えば、imagecreatefromstringfile_get_contents($ _POST ['url'] [$ i]));でそれぞれの画像を作成する。

    あなたは小さな画像の大きさが必要な場合、あなたはこのようにgetimagesize()を使用することができます。

    list($iwidth,$iheight) = getimagesize($_POST['url'][$i]);

  3. imagecopy()PTで作成した画像。 (例えば、$_POST['xcoords'][$i],$_POST['ycoords'][$i]
  4. で、$imcontに、 2と3を各投稿画像に適用します。
  5. 生成された画像を保存します。$imcont jpegイメージを作成する場合は、imagejpeg()を使用してください。

例えば、フォームからの配列をPOST入力名の後[]を使用する

  • に注意してください<input name="foo[]" ... >;
  • $iはforループのインデックスです。
  • 通常、file_get_contents()の必要に応じて、ファイルシステムのパス全体を投稿しないので、画像のベースディレクトリを$_POST['url'][$i]の前に付ける必要があります。
  • http://www.site.com/image.jpg/usr/share/images/image.jpegのようなファイルシステムの反対側)のようなURLから画像を読み取る場合は、PHP設定でallow_url_fopenが有効になっている必要があります。
  • 画像は処理のzオーダーでコンテナにコピーされます。つまり、最初の画像はすべての画像の下に貼り付けられます。
+0

をあなたを助ける場合

を@Mohamed? –

+0

美しい説明、私はユーザーが自分の写真にものをドラッグして、それを使って最終的な画像を生成するアプリケーションを作成するために必要なものすべて。 –

1

あなたは例のコードは、多分これはあなたがそのような機能のためのコード例をお願いします少し http://www.bolducpress.com/tutorials/how-to-make-custom-avatars-with-php/2/

+0

リンクをありがとう、私はそれの何かを試してみます。 –

+0

ありがとうKemal、それは本当に良いものですが、同じサイズのすべての画像を作るのではなく、各画像のポジションを割り当てる人がまだ分かりません。何か案が? –

関連する問題