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

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

03.09.2010, 22:31. Показов 6687. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru