2011-06-20 2 views
0

Есть ли способ, которым я могу создать одно изображение из нескольких изображений, перетаскиваемых пользователем в некоторых положениях контейнера div?Как сгенерировать изображения в php и jquery?

Я попытался сделать это с помощью html5 canvas, однако html5 canvas не интегрируется с использованием jquery, чтобы изменить источник изображений в холсте.

ответ

3

Вы можете размещать URL-адреса изображений и координаты в PHP-скрипте, а затем (на стороне сервера) собирать различные изображения в один, используя PHP image manipulation functions.

EDIT

Я дам несколько лаконичных правил о том, как вы можете выполнить свою задачу.

У вас будет форма с 3 массивами скрытых <input> s: URL-адреса изображений, координаты x и координаты y размещенных изображений. Они будут заполнены через jquery как пользовательские изображения drops в контейнер.

сборки скрипт будет работать аналогичным образом:

  1. Создайте (большой) пустой контейнер изображения (с imagecreatetruecolor()), давайте назовем его $imcont
  2. Читать последовательно посланных URL, (например $_POST['url'][$i]) , откройте соответствующее изображение и создайте изображение для каждого из них, например, imagecreatefromstring (file_get_contents ($ _POST ['url'] [$ i]));

    если вам нужны размеры малый образ, вы можете использовать getimagesize() так:

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

  3. imagecopy() образ, созданный в пт. 2 в $imcont, в соответствующих координатах POSTED (например, $_POST['xcoords'][$i],$_POST['ycoords'][$i])
  4. Повторите пункты. 2 и 3 для каждого размещенного изображения.
  5. Сохранение сгенерированного изображения $imcont, например. если вы хотите создать jpeg-образ, используйте imagejpeg().

Пожалуйста, обратите внимание,

  • Чтобы POST массивы из формы, использовать [] после ввода имени, например, <input name="foo[]" ... >;
  • $i - индекс в цикле for;
  • Обычно вы не отправляете весь путь к файловой системе, как требуется file_get_contents(), поэтому вам, вероятно, придется добавить базовый каталог изображений к $_POST['url'][$i];
  • Если вы хотите прочитать изображения с URL-адреса, например http://www.site.com/image.jpg (напротив пути файловой системы, например /usr/share/images/image.jpeg), вам понадобится allow_url_fopen в вашей конфигурации PHP;
  • изображения будут скопированы в контейнер в z-порядке обработки, т. Е. Первый будет вставлен ниже всех остальных.
+0

могли бы вы привести пример кода для такой функции? –

+0

Красивое объяснение, все, что мне нужно для создания приложения, которое пользователь перетаскивает в свою картинку, а затем создаю с ним окончательную картинку. –

1

@Mohamed

Если вы хотите пример кода, может быть, это поможет вам немного http://www.bolducpress.com/tutorials/how-to-make-custom-avatars-with-php/2/

+0

Спасибо за ссылку, я попробую что-то поделать. –

+0

Спасибо, Кемаль, это действительно хороший, по-прежнему не может понять, кому назначить позиции для каждого изображения, а не делать все изображения одного размера. Есть идеи? –

Смежные вопросы