LINUX.ORG.RU
ФорумTalks

Чистка .svg от мусора


0

1

Открыл в текстовом редакторе сгенерированный inkscape .svg-файл и ужаснулся. Куча лишнего. Лишние эффекты (которые когда-то использовались в документе, но потом перестали). Лишние градиенты. Нужного там было процентов 20.

Почистил вручную.

А есть ли тулзы для чистки? И почему inkscape не чистит документы от мусора при сохранении? Ведь алгоритм простой.

★★★★★

Алгоритм чистки. Смотрим id первого объекта в defs. Он встречается где-то в документе? Если нет, удаляем объект. Если да, переходим на следующий объект. И так далее. Достигли конца defs? Снова переходим к первому объекту. И так до тех пор, пока за итерацию не будет удалено ни одной записи. Это если деревьями не заморачиваться.

Obey-Kun ★★★★★
() автор топика
Ответ на: комментарий от Deleted

и спасибо за ссылку

я свою пиктограмму руками чистить решил, заодно все координаты округлю %). но в будущем пригодится.

Obey-Kun ★★★★★
() автор топика
Ответ на: комментарий от true_admin

да тут даже не в этом дело

думаю, многие помнят, как MS Word сохранял html. Противно же, когда в документе лишнее.

Obey-Kun ★★★★★
() автор топика
Ответ на: комментарий от Obey-Kun

не-не-не, ты посчитай кпд. Если там только 20% полезной информации то это значит что расходуется в 5(!) раз больше ресурсов чем надо. Конечно одна svg погоды не делает, но если так пишутся все проги..

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

ну при отрисовке эти данные не используются... там как всё строено, есть def'ы с градиентами, эффектами и т.п, а объекты могут эти самые def'ы использовать

если лишние ресурсы и расходуются, то только память, но там это незначительно, при отрисовке её тратится гораздо больше, чем на хранение def'ов

Obey-Kun ★★★★★
() автор топика
Ответ на: комментарий от Obey-Kun

Судя по тому, что я вижу в интернете — либо все не осилили экспорт, либо экспорт (или сохранение в обычное SVG) там кривое.

// Тыкаю в SVG руками, так что не знаю как там в инкскейпе.

Deleted
()
Ответ на: комментарий от Obey-Kun

При отрисовке может и нет, а вот объём раздувается — больше передавать по интернетам.

Deleted
()
Ответ на: комментарий от Obey-Kun

> Алгоритм чистки.

В том же Inkscape есть встроенная фигня: Файл → Очистить defs. Не разумнее ли будет использовать её?

eveel ★★
()
Ответ на: комментарий от Obey-Kun

За способ чистки вручную. JPEG-и я уже умею чистить, а SVG ещё нет.

ZenitharChampion ★★★★★
()
Ответ на: комментарий от Deleted

Traceback (most recent call last): File «/usr/bin/scour», line 2919, in <module> options, (input, output) = parse_args() File «/usr/bin/scour», line 2882, in parse_args infile = maybe_gziped_file(options.infilename) File «/usr/bin/scour», line 2867, in maybe_gziped_file return file(filename, mode) NameError: global name 'file' is not defined

Obey-Kun ★★★★★
() автор топика

А когда делаешь что-нибудь вроде Undo-Redo это информация не используется? Заливку например сделал, потом удалил, а градиент остался - тогда следующая заливка будет с теми же свойствами.

Или эта информация хранится в самом приложении, а не в файле?

alpha ★★★★★
()
Ответ на: комментарий от Obey-Kun

Разработчики могут считать это фичей (например чтоб при обратной импорте в редактор все сохранилось)

DNA_Seq ★★☆☆☆
()
Ответ на: комментарий от DNA_Seq

О такой фичи по логике должен спасать «экспорт». Он там есть?

Deleted
()
Ответ на: комментарий от Obey-Kun

Кстати, осторожнее. Анимированные можно поломать.

Deleted
()

Файл → Очистить defs же. Если нужно к группе файлов применить, то юзай «inkscape --vacuum-defs».

pevzi ★★★★★
()

Актуально. Задавался тем же вопросом. Но раньше чистил вручную.

artb1sh
()

> А есть ли тулзы для чистки?

Файл > Очистить defs

И почему inkscape не чистит документы от мусора при сохранении? Ведь алгоритм простой.

Потому что ты не сказал ему это сделать.

Файл > Сохранить > Оптимизированный SVG (почищенный с помощью Scour) или Простой SVG (минус пространства имён и прочее)

AP ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.