С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript: HTML5 Canvas
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/35: Рейтинг темы: голосов - 35, средняя оценка - 4.69
 Аватар для Vladiator
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268

Отправка содержимого <canvas> на сервер

03.09.2010, 22:31. Показов 6625. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как отправить содержимое <canvas> (HTML 5) на сервер?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.09.2010, 22:31
Ответы с готовыми решениями:

Отправка содержимого формы на сервер нажатием быстрой комбинации клавиш
Всем доброго времени суток! Подскажите, пожалуйста, каким образом можно реализовать следующую возможность: В административной...

Отправка содержимого CANVAS на E-Mail
Добрый вечер! Срочно нужно решить проблему: есть рисовалка на CANVAS и кнопка отправки. Нужно изображение из CANVAS отправить на...

Отправка содержимого поля в файл при нажатии кнопки без потери этого содержимого с поля
Привет всем!) Я отправляю содержимое textarea в файл при нажатии кнопки, после нажатия на кнопку содержимое стирается с этого поля. Как...

9
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
03.09.2010, 23:03
У канв есть метод .getImageData(), который возвращает объект типа ImageData.
Этот объект имеет свойства width & height, а также свойство data, которое по сути дела является массивом чисел.
Думаю, что эти данные можно легко передавать ajax-ом, кодируя объект ImageData через json.
1
 Аватар для Vladiator
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
06.09.2010, 15:31  [ТС]
а можно код отправки на JS и PHP?
0
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
06.09.2010, 18:46
Цитата Сообщение от Kidalvь Посмотреть сообщение
а можно код отправки на JS и PHP?
Сегодня - вряд ли.
Завтра поэкспериментирую. О результатах сообщу.
1
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
07.09.2010, 13:23
Результаты: полет нормальный

Исходник в приложении.

Примечания:

Сразу говорю, что мое творение - это чисто для подтверждения возможностей передачи содержимого canvas на сервер и обратно. Очень многое надо дошлифовывать и дорабатывать.

Самое существенное, что надо учитывать - это размер файла картинки. Поскольку не используется никакая компрессия, то в моем примере для картинки 100х100 пикселей получается файл размером почти 100КБ. Однако, это дело поправимо, если еще на стороне сервера кодировать картинку в формат PNG.

Также следует предусмотреть возможные траблы с загрузкой на сервер и обратно.
Например, PHP-хостинг часто ограничивает максимальный размер POST-данных через настроку php.ini
И еще, при таких объемах данных большие картинки будут загружаться долго. Поэтому есть смысл подумать о загрузке картинки кусками и о показе пользователю состояния загрузки (прогрессбар какой-нибудь).
Вложения
Тип файла: zip canvas.zip (6.7 Кб, 233 просмотров)
2
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
07.09.2010, 13:26
И да, я использовал jQuery для удобства работы с AJAX. Если нет понятия что это и как, то спрашивайте.
1
 Аватар для ostgals
886 / 681 / 101
Регистрация: 23.01.2009
Сообщений: 1,582
07.09.2010, 15:37
На буржуинском форуме наткнулся на интересный способ избавиться от "синдрома" больших файлов. Новый вариант использует компрессию PNG прямо на стороне клиента перед отправкой на сервер.

Но. Сразу оговорюсь - вряд ли это можно считать 100% безопасным и надежным методом, так как этот способ базируется на "уверенности", что после конвертации картинки в PNG формат, ее данные будут зашифрованы по алгоритму base64.

Хотя, надо отметить, работает в десятки раз быстрее
Вложения
Тип файла: zip canvas2.zip (19.4 Кб, 250 просмотров)
2
 Аватар для Vladiator
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
23.03.2011, 15:47  [ТС]
Вроде отправляется, но сохраняется в то, что не может распознаться как изображение в формате PNG.
Как сделать так, чтобы распознавалось?
0
 Аватар для Vladiator
1574 / 645 / 79
Регистрация: 24.02.2009
Сообщений: 9,268
28.03.2011, 17:19  [ТС]
Решено. Функция base64_decode().
0
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 9
07.12.2017, 16:08
Решено. Функция base64_decode().
Можно посмотреть вариант?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.12.2017, 16:08
Помогаю со студенческими работами здесь

Преобразование содержимого Canvas в Image
Доброго времени суток! Я занимаюсь разработкой программы, отображающей различные графики, на языке C# с помощью WPF. Столкнулся с...

Сохранение содержимого Canvas в PNG
Здравствуйте!Пишу редактор графов,хочу добавить возможность сохранения созданного графа в качестве картинки. Граф находится в...

Прокрутка в canvas при выходе содержимого за пределы
Доброго временни суток. Возникло несколько проблем: Есть Canvas на форме. Предполагается динамически добавлять на него другие...

Canvas и PHP, Отправка картинки на почту
В общем, еле еле сделал так, что бы текст картинки декодировался и сохранялся на сервере, при этом есть минус, сохраняет картинки он с...

Разработать приложение для вывода содержимого компонента класса TMemo на печать с использованием функции Canvas
Разработать приложение для вывода содержимого компонента класса TMemo на печать с использованием функции Canvas c помощью метода TextOut. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru