Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: работа с SVG форматом  (Прочитано 2566 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alexander.pronin

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
работа с SVG форматом
« : 22 Октября 2009, 17:50:36 »
Все откладывал, но уже пришло время разобраться с svg.
Задача такая (как я себе мыслю).
В html есть 3 div.
div1 (будет показывать картинку)
div2 (скрытый svg xml)
div3 (скрытый сюда периодически подгружаются xml теги, по которым будет меняться картинка с помощью JS).
Наработок у меня по этой теме пока нет. Что подскажете, чтобы придать ускорение.

Пользователь решил продолжить мысль 23 Октября 2009, 14:27:11:
Возник более конкретный вопрос.
Возможна ли загрузка svg в какой-то div на html странице (это пока не получается)
или только возможно в текущий фрейм (это у меня получается).
« Последнее редактирование: 23 Октября 2009, 14:27:11 от alexander.pronin »

Оффлайн alexander.pronin

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: работа с SVG форматом
« Ответ #1 : 26 Октября 2009, 08:22:51 »
Возможна ли загрузка svg в какой-то div на html странице (это пока не получается)
или только возможно в текущий фрейм (это у меня получается).
Возможно.
Но надо использовать не div, а embed. При использовании div происходит перезагрузка всего окна. Похоже, что xslt формирует полный html с head и body.
При использовании embed происходит загрузка в блок, но при этом возникают какие-то проблемы с getElementById внутри самого svg. Метод возвращает null.
ОЧЕНЬ СТРАННО.

Пользователь решил продолжить мысль 26 Октября 2009, 11:17:45:
Попробовал еще с object и iframe.
Только iframe, похоже, пойдет, хотя все варианты загружают svg.

Пользователь решил продолжить мысль 26 Октября 2009, 16:42:36:
Ура ! Добил, заработало.
Последний прикол был с фреймами, но файербаг и правильные вопросы в тырнете сделали свое дело.
Если у кого есть вопросы по svg, я готов отвечать. Все очень просто, если разобраться.
За svg  будущее.
« Последнее редактирование: 26 Октября 2009, 16:42:36 от alexander.pronin »

Оффлайн bektau

  • Участник
  • *
  • Сообщений: 140
  • US 9.04, US 9.10 , Lucid 10.04 (fix)
    • Просмотр профиля
Re: работа с SVG форматом
« Ответ #2 : 24 Ноября 2009, 07:49:42 »
Если у кого есть вопросы по svg, я готов отвечать. Все очень просто, если разобраться.
За svg  будущее.
Их есть у меня!  :)


А есть библиотечка какая нибудь для того чтобы из командной строки конвертить, только не просто встраивая изображение в svg файл, а реально конвертить ?
я нашёл только как из svg делать растровые изображения,
(Нажмите, чтобы показать/скрыть)
но мне нужно наоборот.
на сайте загружаемые изображения, хочу давать возможность увеличивать и уменьшать без потери качества.

ну и вообще, в принципе и отдавать потом в галерее фотки, целесообразно думаю в сжатом svg для нормальных браузеров,
и в преобразованном под растр для ие.

Оффлайн alexander.pronin

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: работа с SVG форматом
« Ответ #3 : 24 Ноября 2009, 08:21:23 »
В inscape есть векторизация растровых изображений. Причем это нетривиальная задача, многозаходная и требующая при плавных переходах напилинга. Поэтому врядли найдется утилита для командной строки. Я такую не знаю.

Оффлайн 13hakta

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: работа с SVG форматом
« Ответ #4 : 19 Января 2010, 11:32:38 »
вот и мой вопрос подоспел:
использую FF 3.5

в HTML объявляю так:
<object data="graph.svg" width="400" height="500" id="troll" type="image/svg+xml"></object>
var trollobj = document.getElementById('troll'), svgdoc, svg, elem;

 if (trollobj && trollobj.contentDocument)
  svgdoc = trollobj.contentDocument;
 else try {
  svgdoc = trollobj.getSVGDocument();
 }
 catch(exception) {
  alert('Neither the HTMLObjectElement nor the GetSVGDocument interface are implemented');
 }

svg = svgdoc.documentElement;
elem = svg.getElementById('elem1');

FF ругается на то, что метод getElementById не реализован. Как обратиться к элементам SVG из HTML?
Ubuntu 9.10 32

Оффлайн alexander.pronin

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: работа с SVG форматом
« Ответ #5 : 19 Января 2010, 12:53:47 »
Дам примерчик для анализа ошибок.

Пользователь решил продолжить мысль 19 Января 2010, 12:57:31:
« Последнее редактирование: 19 Января 2010, 12:57:35 от alexander.pronin »

Оффлайн 13hakta

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: работа с SVG форматом
« Ответ #6 : 19 Января 2010, 14:03:38 »
разобрался, сделал. но убил несколько часов...по непонятым причинам стало работать.
Ubuntu 9.10 32

Оффлайн alexander.pronin

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: работа с SVG форматом
« Ответ #7 : 19 Января 2010, 15:20:07 »
Страницу надо перегружать после корректировки ее.

Оффлайн 13hakta

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: работа с SVG форматом
« Ответ #8 : 19 Января 2010, 22:04:13 »
естесственно перегружал страницу!
Ubuntu 9.10 32

Оффлайн alexander.pronin

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: работа с SVG форматом
« Ответ #9 : 20 Января 2010, 09:03:14 »
У меня был случай.
Рихтовал страницу, сейчас не помню уже что требовалось, но осадок остался.
Что-то менялось, а что хотел получить не получалось. Я там разошелся не на шутку. Домой ушел поздно.
Утром с утра пробую, совсем все другое, причем, как оказалось, я доломал до нерабочего состояния страницу, а вечером почти все работало.
Вероятно, какое-то кеширование происходит и все клинит по-черному. ;D

Оффлайн 13hakta

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: работа с SVG форматом
« Ответ #10 : 20 Января 2010, 13:00:07 »
Вот что у меня получилось в интерактивной схеме http://phoenix.strchat.ru/tr/ рабочий вариант первого приближения к результату :) из-за функций querySelectorAll работает корректно только на последнем FF и Chrome.
Ubuntu 9.10 32

Оффлайн alexander.pronin

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2539
    • Просмотр профиля
Re: работа с SVG форматом
« Ответ #11 : 20 Января 2010, 17:04:11 »
У меня работает так.
Выбираю маршрут (становится зелененьким) - старт- бегает по маршруту с высвечиванием остановок (красным цветом) и текстовых описаний.
FF3.0.15
Для древних браузеров можно просто выдать сообщение и этим ограничиться.
« Последнее редактирование: 20 Января 2010, 17:09:04 от alexander.pronin »

Оффлайн 13hakta

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: работа с SVG форматом
« Ответ #12 : 26 Января 2010, 14:06:35 »
всё так и должно быть, только не на всех браузерах будет работать подсвечивание кружочков при наведении курсора.
Ubuntu 9.10 32

 

Страница сгенерирована за 0.05 секунд. Запросов: 25.