Форум сообщества Runtu.org
Октябрь 23, 2018, 10:12:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Новости: Доступна для тестирования х64 версия дистрибутива Runtu XFCE 18.04 - 20181018

Подробнее
   Начало   Помощь Поиск Войти Регистрация  
Страниц: 1 2 »  Все   Вниз
  Печать  
Автор Тема: librsvg2-bin как конвертор изображений svg/png  (Прочитано 15170 раз)
0 Пользователей и 1 Гость смотрят эту тему.
artec
Новичок
**
Offline Offline

Сообщений: 33


« : Сентябрь 25, 2015, 16:04:02 »

Нужно конвертировать svg в png. Пользоваться буду библиотекой librsvg2-bin для этих дел. Нужно пакетное преобразование.
На глобальных просторах есть небольшая инфа на эту тему. Так вот там предлагается для одиночного файла такая команда:
Код:
rsvg-convert in.svg -o out.png
А как эту команду передать в цикл, чтобы конвертирование было без изменений размеров исходника? То есть, если файл 48х48 px то и на выходе получался бы файл 48х48, только в png. Может кто подскажет как будет выглядеть?
Записан
sfs
Местный
*****
Offline Offline

Сообщений: 628


WWW
« Ответ #1 : Сентябрь 25, 2015, 16:39:49 »

Код:
#!/bin/sh
for i in `find "$1"/*.svg` ;do
    rsvg-convert -f png "$i" >"`dirname "$i"``basename "$i" .svg`.png"
done
Запускать: скрипт путь_к_папке_с_svg
« Последнее редактирование: Сентябрь 25, 2015, 16:42:13 от sfs » Записан

artec
Новичок
**
Offline Offline

Сообщений: 33


« Ответ #2 : Сентябрь 25, 2015, 18:06:36 »

sfs, спасибо большое...если ещё подскажите как этот скрипт сделать для контекстного меню в тунар и nemo, то будет совсем замечательно Улыбающийся.
Записан
ek-nfn
Местный
*****
Offline Offline

Сообщений: 1174


« Ответ #3 : Сентябрь 25, 2015, 19:22:21 »

ещё подскажите как этот скрипт сделать для контекстного меню в тунар

Thunar : "Правка - Особые действия - Добавить особое действие"

- В командной строке прописать одной строкой весь этот скрипт, начиная с for...
- после .svg`.png" (перед done) вставить ;
- переменную $1 заменить на %f
- Название действия любое понравившееся, как и значок
- На вкладке "Условия появления" отметить лишь каталог, шаблон - *
ОК
Применять к каталогам

В nemo не помню как. Там вроде своя папка для файлов-скриптов

« Последнее редактирование: Сентябрь 25, 2015, 19:26:29 от ek-nfn » Записан
artec
Новичок
**
Offline Offline

Сообщений: 33


« Ответ #4 : Сентябрь 25, 2015, 19:48:30 »

ek-nfn , спасибо за отклик.
Прежде чем закинуть в "особое действие" проверил в терминале, вот такая команда у меня получилась:
Код:
for i in `find "$1"/*.svg`; do rsvg-convert -f png "$i" >"`dirname "$i"``basename "$i" .svg`.png"; done

Ответ
Код:
find: `/*.svg': Нет такого файла или каталога
Записан
ek-nfn
Местный
*****
Offline Offline

Сообщений: 1174


« Ответ #5 : Сентябрь 25, 2015, 20:40:39 »

все правильно.  для терминала переменную $1 необходимо заменить на реальный путь к каталогу с файлами  svg
« Последнее редактирование: Сентябрь 25, 2015, 20:48:30 от ek-nfn » Записан
artec
Новичок
**
Offline Offline

Сообщений: 33


« Ответ #6 : Сентябрь 25, 2015, 21:33:07 »

После некоторых экспериментов получил выходные иконки, только почему-то ещё и с дубляжём в формате  "название значка.svg.svg.png". Команду пробовал такую:
Код:
for i in `find "/home/user/.icons/название пака иконок"/*.svg`; do rsvg-convert -f png "$i" >"`dirname "$i"``basename "$i" .svg`.png"; done
Ссорь за непонимание, но может я не правильно понял и надо поменять ещё и переменную "$i" на какой-то путь?
« Последнее редактирование: Сентябрь 25, 2015, 21:36:59 от artec » Записан
ek-nfn
Местный
*****
Offline Offline

Сообщений: 1174


« Ответ #7 : Сентябрь 25, 2015, 21:52:11 »

с командой rsvg-convert незнаком, но эта строчка - `basename "$i" .svg`.png выглядит странной.  Попробуйте заменить ее таким вариантом  `basename "$i"`.png
Ожидаемый результат -  name_file.svg.png
« Последнее редактирование: Сентябрь 25, 2015, 21:57:48 от ek-nfn » Записан
artec
Новичок
**
Offline Offline

Сообщений: 33


« Ответ #8 : Сентябрь 25, 2015, 22:11:36 »

Хм, интересно, теперь исчезли правильные расширения, а остались дубли в формате "название иконки.svg.png". Вроде как и планировалось. Команда была такая:
Код:
for i in `find "/home/user/название папка иконок"/*.svg`; do rsvg-convert -f png "$i" >"`dirname "$i"``basename "$i"`.png"; done
Записан
ek-nfn
Местный
*****
Offline Offline

Сообщений: 1174


« Ответ #9 : Сентябрь 25, 2015, 22:15:59 »

Что имеется в виду под фразой теперь исчезли правильные расширения ?

Тут надо разбираться с выходными данными команды rsvg-convert, которые она загоняет в "`dirname "$i"``basename "$i" .svg`.png".
Я не знаком с этой утилитой, поэтому ждем sfs

« Последнее редактирование: Сентябрь 25, 2015, 22:31:38 от ek-nfn » Записан
artec
Новичок
**
Offline Offline

Сообщений: 33


« Ответ #10 : Сентябрь 25, 2015, 22:24:49 »

В смысле когда были дубли, то то были и значки в формате "название.png". Сейчас только остались дубли в формате "название.svg.png"...в принципе наверное не суть, пойдёт и так пока..
Записан
ek-nfn
Местный
*****
Offline Offline

Сообщений: 1174


« Ответ #11 : Сентябрь 25, 2015, 22:28:49 »

то есть, исходные файлы заменило иконками ?
Записан
artec
Новичок
**
Offline Offline

Сообщений: 33


« Ответ #12 : Сентябрь 25, 2015, 22:35:01 »

Нет, кстати файлы создаются на директорию выше. Просто при предыдущей команде создавалось  2 вида иконок с разными расширениями (svg.svg.png и png), а теперь только один вид (svg.png).
« Последнее редактирование: Сентябрь 25, 2015, 22:51:05 от artec » Записан
ek-nfn
Местный
*****
Offline Offline

Сообщений: 1174


« Ответ #13 : Сентябрь 25, 2015, 22:40:16 »

Вы писали , что дубль пишется в таком формате -  "название значка.svg.svg.png"

Пока верните как было. Sfs поправит скрипт для удаления дублей
Записан
artec
Новичок
**
Offline Offline

Сообщений: 33


« Ответ #14 : Сентябрь 25, 2015, 22:50:08 »

Всё верно, я немного напутал в предыдущем сообщении. Были иконки в формате "название значка.svg.svg.png" и просто "название значка.png", а теперь только в формате "название значка.svg.png".
« Последнее редактирование: Сентябрь 25, 2015, 22:51:58 от artec » Записан
Страниц: 1 2 »  Все   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Valid XHTML 1.0! Valid CSS!