Автор Тема: librsvg2-bin как конвертор изображений svg/png  (Прочитано 25976 раз)

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

Оффлайн artec

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

Оффлайн sfs

  • Местный
  • *****
  • Сообщений: 722
    • PuppyRus-Arch
Re: librsvg2-bin как конвертор изображений svg/png
« Ответ #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

  • Новичок
  • **
  • Автор темы
  • Сообщений: 33
Re: librsvg2-bin как конвертор изображений svg/png
« Ответ #2 : Сентябрь 25, 2015, 18:06:36 »
sfs, спасибо большое...если ещё подскажите как этот скрипт сделать для контекстного меню в тунар и nemo, то будет совсем замечательно :).

Оффлайн ek-nfn

  • Местный
  • *****
  • Сообщений: 1422
Re: librsvg2-bin как конвертор изображений svg/png
« Ответ #3 : Сентябрь 25, 2015, 19:22:21 »
ещё подскажите как этот скрипт сделать для контекстного меню в тунар

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

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

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

« Последнее редактирование: Сентябрь 25, 2015, 19:26:29 от ek-nfn »
Devuan ASCII x32..x64

Оффлайн artec

  • Новичок
  • **
  • Автор темы
  • Сообщений: 33
Re: librsvg2-bin как конвертор изображений svg/png
« Ответ #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

  • Местный
  • *****
  • Сообщений: 1422
Re: librsvg2-bin как конвертор изображений svg/png
« Ответ #5 : Сентябрь 25, 2015, 20:40:39 »
все правильно.  для терминала переменную $1 необходимо заменить на реальный путь к каталогу с файлами  svg
« Последнее редактирование: Сентябрь 25, 2015, 20:48:30 от ek-nfn »
Devuan ASCII x32..x64

Оффлайн artec

  • Новичок
  • **
  • Автор темы
  • Сообщений: 33
Re: librsvg2-bin как конвертор изображений svg/png
« Ответ #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

  • Местный
  • *****
  • Сообщений: 1422
Re: librsvg2-bin как конвертор изображений svg/png
« Ответ #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 »
Devuan ASCII x32..x64

Оффлайн artec

  • Новичок
  • **
  • Автор темы
  • Сообщений: 33
Re: librsvg2-bin как конвертор изображений svg/png
« Ответ #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

  • Местный
  • *****
  • Сообщений: 1422
Re: librsvg2-bin как конвертор изображений svg/png
« Ответ #9 : Сентябрь 25, 2015, 22:15:59 »
Что имеется в виду под фразой теперь исчезли правильные расширения ?

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

« Последнее редактирование: Сентябрь 25, 2015, 22:31:38 от ek-nfn »
Devuan ASCII x32..x64

Оффлайн artec

  • Новичок
  • **
  • Автор темы
  • Сообщений: 33
Re: librsvg2-bin как конвертор изображений svg/png
« Ответ #10 : Сентябрь 25, 2015, 22:24:49 »
В смысле когда были дубли, то то были и значки в формате "название.png". Сейчас только остались дубли в формате "название.svg.png"...в принципе наверное не суть, пойдёт и так пока..

Оффлайн ek-nfn

  • Местный
  • *****
  • Сообщений: 1422
Re: librsvg2-bin как конвертор изображений svg/png
« Ответ #11 : Сентябрь 25, 2015, 22:28:49 »
то есть, исходные файлы заменило иконками ?
Devuan ASCII x32..x64

Оффлайн artec

  • Новичок
  • **
  • Автор темы
  • Сообщений: 33
Re: librsvg2-bin как конвертор изображений svg/png
« Ответ #12 : Сентябрь 25, 2015, 22:35:01 »
Нет, кстати файлы создаются на директорию выше. Просто при предыдущей команде создавалось  2 вида иконок с разными расширениями (svg.svg.png и png), а теперь только один вид (svg.png).
« Последнее редактирование: Сентябрь 25, 2015, 22:51:05 от artec »

Оффлайн ek-nfn

  • Местный
  • *****
  • Сообщений: 1422
Re: librsvg2-bin как конвертор изображений svg/png
« Ответ #13 : Сентябрь 25, 2015, 22:40:16 »
Вы писали , что дубль пишется в таком формате -  "название значка.svg.svg.png"

Пока верните как было. Sfs поправит скрипт для удаления дублей
Devuan ASCII x32..x64

Оффлайн artec

  • Новичок
  • **
  • Автор темы
  • Сообщений: 33
Re: librsvg2-bin как конвертор изображений svg/png
« Ответ #14 : Сентябрь 25, 2015, 22:50:08 »
Всё верно, я немного напутал в предыдущем сообщении. Были иконки в формате "название значка.svg.svg.png" и просто "название значка.png", а теперь только в формате "название значка.svg.png".
« Последнее редактирование: Сентябрь 25, 2015, 22:51:58 от artec »