Я работаю над проектом, где мне нужно разработать систему, в которой люди могут создавать свой собственный дизайн, выбирая из определенного списка символов и изображений и выбирая фон. Я выполнил все части, касающиеся перетаскивания и т.д. Но я получил предварительный просмотр окончательного результата в одном изображении. То, что я в настоящее время предполагаю, что мне нужно получить позиции элементов в контейнере drag-and-drop (или моем холсте) и передать его в php-скрипт (я могу работать с PHP), а затем создать новое изображение, используя Библиотека изображений PHP. Но его действительно неуклюжий и расстраивающий для меня. Поэтому я здесь за советом и предложением от экспертов.
Итак, мой вопрос is- "Есть ли другие способы использования php или js, которые я могу использовать для получения желаемого результата?"
Заранее спасибо.
Если у вас есть холст, вы можете просто получить содержимое холста в виде изображения (в любом расширении, которое вы хотите) в base64, используя canvas.toDataUrl(); как в этом вопросе:
Получение двоичных данных (base64) из HTML5 Canvas (readAsBinaryString)
Затем вы можете отправить его на свой сервер с помощью AJAX или действия отправки формы (используя скрытое поле). На сервере вы можете получить изображение как base64 и декодировать его в файл для сохранения в файловой системе или просто сохранить его с помощью типа blob в базе данных.
Вы, сэр, прямо на цель. Некоторые рекомендации по оптимизации, однако, состоят в том, чтобы передать размеры как объект JSON, таким образом вы получите массив на PHP, и вы можете иметь несколько объектов, а также поставлять каждый URL-адрес источника изображения.
Существует множество библиотек для обработки фактического поколения. Некоторые из них рассмотрены здесь http://php.net/manual/en/refs.utilspec.image.php. Существует множество учебных пособий по этому вопросу. Я могу вам сказать, вы будете использовать функцию imagecopymerge()
от GD, и это сделает этот ветер. Подробнее об этой теме... Слияние двух изображений в php
Удачи и наслаждайтесь, не стесняйтесь комментировать больше вопросов.