ImageMagick (RSVG) не будет импортировать изображения в SVG
Я пытаюсь использовать ImageMagick для конвертации файлов SVG в PNG.
Файл SVG выглядит следующим образом:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<image xlink:href="picture.jpg" width="200" height="200"/>
</svg>
Независимо от того, какой метод я использую, конечный результат не включает изображение. Другие элементы SVG отрисованы правильно.
Я пробовал:
convert test.svg test.png
rsvg-convert -o test.png test.svg
Я попытался изменить путь к изображению, чтобы использовать file:///, абсолютные пути, удаленные URL-адреса и вариации каждого из них в кодировке URL. Я также отформатировал свой файл с и без doctype.
Я использую librsvg 2.36.3 и ImageMagick 6.8.0-10. Мне удалось использовать фантомы для их преобразования, но это похоже на излишество для этой задачи.
Пожалуйста помоги!
1 ответ
Для меня помогла установка gtk3 (или, точнее, более конкретно "shared-mime-info". (И потом переустановка rsvg И использование абсолютного "file:///" uri для href И наличие файла образа в том же каталоге, что и файл svg)
Больше информации (я все еще не понимаю, что именно происходит):
Я думаю, что проблема не с rsvg напрямую, а с библиотекой gdk-pixbuf (2)
Я нашел место в коде, где gdk-pixbuf используется для загрузки изображения. Я подтвердил (используя printf debuggin), что он не выдает ошибку (кажется, что загружает pixbuf просто отлично), даже если URI в href не указывает на файл.
зависимость gtk3 должна быть необходима только для инструмента rsvg-view-3, а не для rsvg, но, похоже, она есть (или одна из зависимостей, которые появились при установке gtk3)
Это все еще работает даже после удаления gtk3. Он все еще работает после удаления gtk3, а затем перестройки rsvg (./configure детектирует: "gtk3: no"), поэтому я думаю, что это связано с одной из зависимостей, которые были получены при установке gtk3:
атк-2.10.0-1-i686
- HiColor-значок-тема-0.12-2-любой
- GTK-обновление-значок-кэш-2.24.22-1-i686
- libtasn1-3.3-2-i686
- P11-кит-0.20.1-1-i686
- GnuTLS-3.2.5-1-i686
- libcups-1.7.0-1-i686
- libxinerama-1.1.3-2-i686
- разделяемой мим-инфо-1.2-1-i686
- libgusb-0.1.6-1-i686
- NSPR-4.10.1-2-i686
- JS-17.0.0-1-i686
- polkit-0.112-1-i686
- разделяемые цветовые профили-0.1.5-1-либо
- dconf-0.18.0-1-i686
- colord-1.0.2-2-i686
- recordproto-1.14.2-1-любой
- libxtst-1.2.2-1-i686
- в-spi2-ядро-2.10.1-1-i686
- в-spi2-атк-2.10.0-1-i686
- xkeyboard-конфиг-2.10.1-1-любой
- libxkbcommon-0.3.1-1-i686
(Я оставляю их здесь на случай, если это не та библиотека, которую я определил в конце)
Поэтому я попытался удалить эти группы в группах, а затем перестроить и протестировать. Оказывается, тот, кто заставляет это работать...
* shared-mime-info