Nano Hash - криптовалюты, майнинг, программирование

SVG в PNG с помощью imagick

У меня есть svg, в который встроено несколько изображений. Что-то вроде:

<?xml version='1.0' encoding='UTF-8'?>

<svg 
  width="483" height="710" 
  xmlns="http://www.w3.org/2000/svg" 
  xmlns:xlink="http://www.w3.org/1999/xlink">
  <g>
    <title>Layer 1</title>
    <image 
      id="svg_1"
      y="0" x="0"
      height="199" width="176"
      xlink:href="http://192.168.3.2/images/1341920552_test.png"/>
  </g>
</svg>

Поэтому, когда я выполняю преобразование через командную строку как мой обычный пользователь Linux, он отлично конвертирует его в PNG. Но если я сделаю то же самое с пользовательскими www-данными, тогда они будут преобразованы, но изображения не будут отображаться в результирующем PNG, другие вещи, такие как линии и т. Д., Будут отображаться.

Такая же проблема возникает, если я конвертирую с помощью библиотеки PHP imagick. Прикрепленные изображения не отображаются. Любая помощь приветствуется.

10.07.2012

  • Кажется, проблема с правами на папку, используемую для вывода конвертации. Здесь есть решение: stackoverflow.com/a/11267305/795876 10.07.2012
  • Нет, вывод на самом деле записывается. Проблема в том, что на выходе есть только рисунок, такой как затмение, линии и т. Д. Встроенные изображения, такие как jpeg, png в SVG, не отображаются на преобразованном выходе. 10.07.2012

Ответы:


1

После долгих экспериментов заметил, что у всех пользователей такая проблема, если они залогинены по ssh. Обычный пользователь рабочего стола, вошедший в сеанс GUI, может конвертировать без каких-либо проблем.

Я решил проблему, удалив URL-адрес http, ссылающийся на встроенное изображение, и добавив путь к локальной файловой системе. Это замедляет работу моего приложения с текущим дизайном. Но в любом случае это пока решаемо.

Я хотел бы знать причину, хотя относительно того, почему это так.

10.07.2012
  • Я видел комментарий от кого-то на другой пост по этому поводу. Короче говоря, пользователи, обращающиеся к вашему сайту, не имеют тех же разрешений, что и вы в оболочке, что должно иметь место в целях безопасности. Из них команда convert в /usr/bin/ не имеет полных разрешений, т.е. 777. Таким образом, входит пользователь, обращающийся к вашему сайту, оболочка открывается как пользователь сайта, и они не могут использовать команду convert. Есть несколько решений... chmod команды convert в 777, или вы можете открыть новую оболочку, изменить пользователя, запустить convert и закрыть его. Хотя, наверное, не рекомендуется. 29.10.2020
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..