Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   CANVAS to SVG (https://javascript.ru/forum/dom-window/5427-canvas-svg.html)

Paguo-86PK 14.10.2009 02:05

CANVAS to SVG
 
Сохраняю изображение toDataURL и указываю в параметрах image/gif или image/svg+xml. Получаю PNG!
Выгуглить пример с техникой генерации SVG не смог...
Изучаю Canvas лишь вторую неделю. Скачал оффициальную документацию HTML 5.

В соседней теме я уже говорил, что серъёзно отношусь к CANVAS и SVG. Так-как разработка HTML-приложений не требует установленного антивирусного средства и обновления базы. При том клиент всегда может быть уверенным, что я ему не дам вредоносный код!

Сейчас думаю о разработке настоящего Hex-редактора с дизассемблером, который будет открывать и сохранять бинарные файлы на локальный диск как PNG-архивы. Это по настоящему сильный рывок в моём деле!

Сейчас думаю над тем, как реально прямо в HTML-странице разрабатывать электрические схемы или печатные платы. Наконец-то программисту упростили жизнь! Чтобы быть всегда он-лайн и при этом без многократных обновлений страниц или разработкой Flash'ок всяких...

Octane 14.10.2009 02:59

А какой смысл пытаться преобразовать растровые данные в векторный формат? Если же на канвасе отрисовываются графические примитивы или кривые, на основе входных данных в векторном виде, то перевести эти данные в SVG, думаю, будет не трудно.

SVG vs. Canvas: Combining the best techniques

Paguo-86PK 16.10.2009 00:52

А можно оффициальнее?
 
Цитата:

Сообщение от Octane (Сообщение 32383)
А какой смысл пытаться преобразовать растровые данные в векторный формат?

Вы наверное не совсем меня поняли.
Вот допустим у меня алгоритм строит, скажем, муар Серпинского. Всё, что происходит до stroke(), как я понимаю, подобно OpenGL с glBegin() - glEnd(), копится в графическом стеке как список координат. Тогда при генерации SVG библиотека Canvas по идее должна напрямую транслировать содержимое стека в векторный файл SVG. И никаких мозолей.

Вы правы, я сам могу генерировать SVG алгоритмически. А ещё я могу вставлять таблицу в документ двумя способами:
1) document.body.innerHTML += "<table><tr><td>...</td></tr></table>";
2) tab = document.createElement("table"); row = tab.insertRow(0)...
Как по вашему, какой из способов красивее и "легальнее"? ;)
Первым способом я баловался пока "рос". А сейчас я "вырос" и хочу делать коды по оффициальным документированным способам...

Так и SVG. Могу, но не хочу генерировать бесконечную строку с кучей тэгов. А вот "оффициальный" способ - ищу!
С меня хватит самопальной генерации VRML:D

Octane 16.10.2009 03:24

Цитата:

Сообщение от Paguo-86PK
Вот допустим у меня алгоритм строит, скажем, муар Серпинского.

Ну так вы не ответили, зачем это нужно? А если представить сколько SVG-элементов из этого получится и как и все браузер будет отрисовывать…

Цитата:

Сообщение от Paguo-86PK
Как по вашему, какой из способов красивее и "легальнее"?

Оба имеют право на жизнь и не соревнуются между собой в легальности и красоте, причем первый предпочтительнее применять там, где важна производительность, т.к. методами DOM очень долго и громоздко собирать большую таблицу ;)

Цитата:

Сообщение от Paguo-86PK
Так и SVG. Могу, но не хочу генерировать бесконечную строку с кучей тэгов. А вот "оффициальный" способ - ищу!

А в чем тут проблема, SVG же XML-подобный язык, создание тегов (узлов) отличается только необходимостью указывать namespace. По ссылке, которую я привел в сообщении выше, есть пример создания SVG-элементов.

Paguo-86PK 16.10.2009 04:49

Лепота! Как с Фортраном
 
Цитата:

Сообщение от Octane (Сообщение 32500)
Ну так вы не ответили, зачем это нужно? А если представить сколько SVG-элементов из этого получится и как и все браузер будет отрисовывать…

В какой-то степени Вы правы. Но допустим заказчик, далёкий от технологий, увидет файл в 1кб и подумает, что я плохо поработал. С другой стороны, если он воспользуется моим алгоритмом крохотным и получит сотню килобайт SVG, может оценить мой труд. Смотря какой человек ещё. А Вы браузер жалеете:lol:
Цитата:

Сообщение от Octane (Сообщение 32500)
Оба имеют право на жизнь и не соревнуются между собой в легальности и красоте, причем первый предпочтительнее применять там, где важна производительность, т.к. методами DOM очень долго и громоздко собирать большую таблицу ;)

Да читал я заметки, что Microsoft никак IE свой исправить не может с элементом списка чтоли и сама советует подобный быстрый и левый способ.
А Вы подумали над тем, что если наши с Вами коды лет через 30 археологи интернета раскопают и будут изучать все кривости, подгоняя под оффициальное, чтобы заработало? Так заварили кашу Фортранщики, когда экономили байты на дате, спровоцировав проблему 2000 через 40 лет.
Канифоль, олово и пояльник хорошо, если комп старый и к нему надо USB-мышь через LPT припаять. Выглядить будешь как мастер-академик.
А когда кругом всё современное, а ты аналоговый джойстик хочешь прибачить к USB через 1006ВИ1 микруху + USB-чип или АЦП, то многие скажут "вот идиот, купить готовое легче"!

А я стараюсь в спешном порядке отойти от идиотизма с паяльником. Итак друзья ругают за пристрастие к ассемблеру и аппаратным портам. Или ты герой силиконовой далины с ассемблером в руках, или никому неизвестный псих одиночка!:cray:

В нашем городе работу не найти, если ты ассемблерщик и Сишник. Всем требуется Web-программист, да Си-шарпист:help:

Цитата:

Сообщение от Octane (Сообщение 32500)
А в чем тут проблема, SVG же XML-подобный язык, создание тегов (узлов) отличается только необходимостью указывать namespace. По ссылке, которую я привел в сообщении выше, есть пример создания SVG-элементов.

Что-то не понял я пример тот. Ну рисую я кривую линию, ну жму конвертить в SVG, ну появляется она там. Далее контекстное меню вызываю на SVG-картинке и вместо XML-содержимого с координатами, вижу содержимое самой страницы. Что-то не то...
Хоть бери и все moveTo/lineTo и пр. дублируй своими функциями и подпольно копи параметры их вызовов в массив...
Не то. Определённо не то. Или toDataURL не для этого, или не хватает описания оффициального механизма...

Octane 16.10.2009 11:42

Цитата:

Сообщение от Paguo-86PK
Но допустим заказчик, далёкий от технологий, увидет файл в 1кб и подумает, что я плохо поработал. С другой стороны, если он воспользуется моим алгоритмом крохотным и получит сотню килобайт SVG, может оценить мой труд. Смотря какой человек ещё. А Вы браузер жалеете

И после этого вы о каких-то «официальных документированных способах» говорите…

Цитата:

Сообщение от Paguo-86PK
Да читал я заметки, что Microsoft никак IE свой исправить не может с элементом списка чтоли и сама советует подобный быстрый и левый способ.

Бред. И еще раз, изменение innerHTML — не «левый способ», как вы говорите. С чего вы вообще это взяли?

Цитата:

Сообщение от Paguo-86PK
Хоть бери и все moveTo/lineTo и пр. дублируй своими функциями и подпольно копи параметры их вызовов в массив...
Не то. Определённо не то. Или toDataURL не для этого, или не хватает описания оффициального механизма...

Вы точно понимаете, что такое векторная и растровая графика?


Часовой пояс GMT +3, время: 23:56.