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

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

03.09.2010, 22:31. Показов 6608. Ответов 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
Ответ Создать тему
Новые блоги и статьи
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. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru